!function(e, t) {
    var n = e.document, i = e.navigator, r = e.location;
    var a = function() {
        var r = function(e, t) {
            return new r.fn.init(e, t, s)
        }, a = e.jQuery, o = e.$, s, l = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, f = /\S/, u = /^\s+/, c = /\s+$/, d = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, p = /^[\],:{}\s]*$/, h = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, m = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, g = /(?:^|:|,)(?:\s*\[)+/g, y = /(webkit)[ \/]([\w.]+)/, v = /(opera)(?:.*version)?[ \/]([\w.]+)/, b = /(msie) ([\w.]+)/, x = /(mozilla)(?:.*? rv:([\w.]+))?/, w = /-([a-z]|[0-9])/gi, T = /^-ms-/, N = function(e, t) {
            return(t + "").toUpperCase()
        }, C = i.userAgent, E, k, S, A = Object.prototype.toString, L = Object.prototype.hasOwnProperty, j = Array.prototype.push, F = Array.prototype.slice, D = String.prototype.trim, M = Array.prototype.indexOf, O = {};
        r.fn = r.prototype = {constructor: r, init: function(e, i, a) {
                var o, s, f, u;
                if (!e) {
                    return this
                }
                if (e.nodeType) {
                    this.context = this[0] = e;
                    this.length = 1;
                    return this
                }
                if (e === "body" && !i && n.body) {
                    this.context = n;
                    this[0] = n.body;
                    this.selector = e;
                    this.length = 1;
                    return this
                }
                if (typeof e === "string") {
                    if (e.charAt(0) === "<" && e.charAt(e.length - 1) === ">" && e.length >= 3) {
                        o = [null, e, null]
                    } else {
                        o = l.exec(e)
                    }
                    if (o && (o[1] || !i)) {
                        if (o[1]) {
                            i = i instanceof r ? i[0] : i;
                            u = i ? i.ownerDocument || i : n;
                            f = d.exec(e);
                            if (f) {
                                if (r.isPlainObject(i)) {
                                    e = [n.createElement(f[1])];
                                    r.fn.attr.call(e, i, true)
                                } else {
                                    e = [u.createElement(f[1])]
                                }
                            } else {
                                f = r.buildFragment([o[1]], [u]);
                                e = (f.cacheable ? r.clone(f.fragment) : f.fragment).childNodes
                            }
                            return r.merge(this, e)
                        } else {
                            s = n.getElementById(o[2]);
                            if (s && s.parentNode) {
                                if (s.id !== o[2]) {
                                    return a.find(e)
                                }
                                this.length = 1;
                                this[0] = s
                            }
                            this.context = n;
                            this.selector = e;
                            return this
                        }
                    } else {
                        if (!i || i.jquery) {
                            return(i || a).find(e)
                        } else {
                            return this.constructor(i).find(e)
                        }
                    }
                } else {
                    if (r.isFunction(e)) {
                        return a.ready(e)
                    }
                }
                if (e.selector !== t) {
                    this.selector = e.selector;
                    this.context = e.context
                }
                return r.makeArray(e, this)
            }, selector: "", jquery: "1.7.1", length: 0, size: function() {
                return this.length
            }, toArray: function() {
                return F.call(this, 0)
            }, get: function(e) {
                return e == null ? this.toArray() : e < 0 ? this[this.length + e] : this[e]
            }, pushStack: function(e, t, n) {
                var i = this.constructor();
                if (r.isArray(e)) {
                    j.apply(i, e)
                } else {
                    r.merge(i, e)
                }
                i.prevObject = this;
                i.context = this.context;
                if (t === "find") {
                    i.selector = this.selector + (this.selector ? " " : "") + n
                } else {
                    if (t) {
                        i.selector = this.selector + "." + t + "(" + n + ")"
                    }
                }
                return i
            }, each: function(e, t) {
                return r.each(this, e, t)
            }, ready: function(e) {
                r.bindReady();
                k.add(e);
                return this
            }, eq: function(e) {
                e = +e;
                return e === -1 ? this.slice(e) : this.slice(e, e + 1)
            }, first: function() {
                return this.eq(0)
            }, last: function() {
                return this.eq(-1)
            }, slice: function() {
                return this.pushStack(F.apply(this, arguments), "slice", F.call(arguments).join(","))
            }, map: function(e) {
                return this.pushStack(r.map(this, function(t, n) {
                    return e.call(t, n, t)
                }))
            }, end: function() {
                return this.prevObject || this.constructor(null)
            }, push: j, sort: [].sort, splice: [].splice};
        r.fn.init.prototype = r.fn;
        r.extend = r.fn.extend = function() {
            var e, n, i, a, o, s, l = arguments[0] || {}, f = 1, u = arguments.length, c = false;
            if (typeof l === "boolean") {
                c = l;
                l = arguments[1] || {};
                f = 2
            }
            if (typeof l !== "object" && !r.isFunction(l)) {
                l = {}
            }
            if (u === f) {
                l = this;
                --f
            }
            for (; f < u; f++) {
                if ((e = arguments[f]) != null) {
                    for (n in e) {
                        i = l[n];
                        a = e[n];
                        if (l === a) {
                            continue
                        }
                        if (c && a && (r.isPlainObject(a) || (o = r.isArray(a)))) {
                            if (o) {
                                o = false;
                                s = i && r.isArray(i) ? i : []
                            } else {
                                s = i && r.isPlainObject(i) ? i : {}
                            }
                            l[n] = r.extend(c, s, a)
                        } else {
                            if (a !== t) {
                                l[n] = a
                            }
                        }
                    }
                }
            }
            return l
        };
        r.extend({noConflict: function(t) {
                if (e.$ === r) {
                    e.$ = o
                }
                if (t && e.jQuery === r) {
                    e.jQuery = a
                }
                return r
            }, isReady: false, readyWait: 1, holdReady: function(e) {
                if (e) {
                    r.readyWait++
                } else {
                    r.ready(true)
                }
            }, ready: function(e) {
                if (e === true && !--r.readyWait || e !== true && !r.isReady) {
                    if (!n.body) {
                        return setTimeout(r.ready, 1)
                    }
                    r.isReady = true;
                    if (e !== true && --r.readyWait > 0) {
                        return
                    }
                    k.fireWith(n, [r]);
                    if (r.fn.trigger) {
                        r(n).trigger("ready").off("ready")
                    }
                }
            }, bindReady: function() {
                if (k) {
                    return
                }
                k = r.Callbacks("once memory");
                if (n.readyState === "complete") {
                    return setTimeout(r.ready, 1)
                }
                if (n.addEventListener) {
                    n.addEventListener("DOMContentLoaded", S, false);
                    e.addEventListener("load", r.ready, false)
                } else {
                    if (n.attachEvent) {
                        n.attachEvent("onreadystatechange", S);
                        e.attachEvent("onload", r.ready);
                        var t = false;
                        try {
                            t = e.frameElement == null
                        } catch (i) {
                        }
                        if (n.documentElement.doScroll && t) {
                            _()
                        }
                    }
                }
            }, isFunction: function(e) {
                return r.type(e) === "function"
            }, isArray: Array.isArray || function(e) {
                return r.type(e) === "array"
            }, isWindow: function(e) {
                return e && typeof e === "object" && "setInterval"in e
            }, isNumeric: function(e) {
                return!isNaN(parseFloat(e)) && isFinite(e)
            }, type: function(e) {
                return e == null ? String(e) : O[A.call(e)] || "object"
            }, isPlainObject: function(e) {
                if (!e || r.type(e) !== "object" || e.nodeType || r.isWindow(e)) {
                    return false
                }
                try {
                    if (e.constructor && !L.call(e, "constructor") && !L.call(e.constructor.prototype, "isPrototypeOf")) {
                        return false
                    }
                } catch (n) {
                    return false
                }
                var i;
                for (i in e) {
                }
                return i === t || L.call(e, i)
            }, isEmptyObject: function(e) {
                for (var t in e) {
                    return false
                }
                return true
            }, error: function(e) {
                throw new Error(e)
            }, parseJSON: function(t) {
                if (typeof t !== "string" || !t) {
                    return null
                }
                t = r.trim(t);
                if (e.JSON && e.JSON.parse) {
                    return e.JSON.parse(t)
                }
                if (p.test(t.replace(h, "@").replace(m, "]").replace(g, ""))) {
                    return new Function("return " + t)()
                }
                r.error("Invalid JSON: " + t)
            }, parseXML: function(n) {
                var i, a;
                try {
                    if (e.DOMParser) {
                        a = new DOMParser;
                        i = a.parseFromString(n, "text/xml")
                    } else {
                        i = new ActiveXObject("Microsoft.XMLDOM");
                        i.async = "false";
                        i.loadXML(n)
                    }
                } catch (o) {
                    i = t
                }
                if (!i || !i.documentElement || i.getElementsByTagName("parsererror").length) {
                    r.error("Invalid XML: " + n)
                }
                return i
            }, noop: function() {
            }, globalEval: function(t) {
                if (t && f.test(t)) {
                    (e.execScript || function(t) {
                        e["eval"].call(e, t)
                    })(t)
                }
            }, camelCase: function(e) {
                return e.replace(T, "ms-").replace(w, N)
            }, nodeName: function(e, t) {
                return e.nodeName && e.nodeName.toUpperCase() === t.toUpperCase()
            }, each: function(e, n, i) {
                var a, o = 0, s = e.length, l = s === t || r.isFunction(e);
                if (i) {
                    if (l) {
                        for (a in e) {
                            if (n.apply(e[a], i) === false) {
                                break
                            }
                        }
                    } else {
                        for (; o < s; ) {
                            if (n.apply(e[o++], i) === false) {
                                break
                            }
                        }
                    }
                } else {
                    if (l) {
                        for (a in e) {
                            if (n.call(e[a], a, e[a]) === false) {
                                break
                            }
                        }
                    } else {
                        for (; o < s; ) {
                            if (n.call(e[o], o, e[o++]) === false) {
                                break
                            }
                        }
                    }
                }
                return e
            }, trim: D ? function(e) {
                return e == null ? "" : D.call(e)
            } : function(e) {
                return e == null ? "" : e.toString().replace(u, "").replace(c, "")
            }, makeArray: function(e, t) {
                var n = t || [];
                if (e != null) {
                    var i = r.type(e);
                    if (e.length == null || i === "string" || i === "function" || i === "regexp" || r.isWindow(e)) {
                        j.call(n, e)
                    } else {
                        r.merge(n, e)
                    }
                }
                return n
            }, inArray: function(e, t, n) {
                var i;
                if (t) {
                    if (M) {
                        return M.call(t, e, n)
                    }
                    i = t.length;
                    n = n ? n < 0 ? Math.max(0, i + n) : n : 0;
                    for (; n < i; n++) {
                        if (n in t && t[n] === e) {
                            return n
                        }
                    }
                }
                return-1
            }, merge: function(e, n) {
                var i = e.length, r = 0;
                if (typeof n.length === "number") {
                    for (var a = n.length; r < a; r++) {
                        e[i++] = n[r]
                    }
                } else {
                    while (n[r] !== t) {
                        e[i++] = n[r++]
                    }
                }
                e.length = i;
                return e
            }, grep: function(e, t, n) {
                var i = [], r;
                n = !!n;
                for (var a = 0, o = e.length; a < o; a++) {
                    r = !!t(e[a], a);
                    if (n !== r) {
                        i.push(e[a])
                    }
                }
                return i
            }, map: function(e, n, i) {
                var a, o, s = [], l = 0, f = e.length, u = e instanceof r || f !== t && typeof f === "number" && (f > 0 && e[0] && e[f - 1] || f === 0 || r.isArray(e));
                if (u) {
                    for (; l < f; l++) {
                        a = n(e[l], l, i);
                        if (a != null) {
                            s[s.length] = a
                        }
                    }
                } else {
                    for (o in e) {
                        a = n(e[o], o, i);
                        if (a != null) {
                            s[s.length] = a
                        }
                    }
                }
                return s.concat.apply([], s)
            }, guid: 1, proxy: function(e, n) {
                if (typeof n === "string") {
                    var i = e[n];
                    n = e;
                    e = i
                }
                if (!r.isFunction(e)) {
                    return t
                }
                var a = F.call(arguments, 2), o = function() {
                    return e.apply(n, a.concat(F.call(arguments)))
                };
                o.guid = e.guid = e.guid || o.guid || r.guid++;
                return o
            }, access: function(e, n, i, a, o, s) {
                var l = e.length;
                if (typeof n === "object") {
                    for (var f in n) {
                        r.access(e, f, n[f], a, o, i)
                    }
                    return e
                }
                if (i !== t) {
                    a = !s && a && r.isFunction(i);
                    for (var u = 0; u < l; u++) {
                        o(e[u], n, a ? i.call(e[u], u, o(e[u], n)) : i, s)
                    }
                    return e
                }
                return l ? o(e[0], n) : t
            }, now: function() {
                return(new Date).getTime()
            }, uaMatch: function(e) {
                e = e.toLowerCase();
                var t = y.exec(e) || v.exec(e) || b.exec(e) || e.indexOf("compatible") < 0 && x.exec(e) || [];
                return{browser: t[1] || "", version: t[2] || "0"}
            }, sub: function() {
                function e(t, n) {
                    return new e.fn.init(t, n)
                }
                r.extend(true, e, this);
                e.superclass = this;
                e.fn = e.prototype = this();
                e.fn.constructor = e;
                e.sub = this.sub;
                e.fn.init = function i(n, i) {
                    if (i && i instanceof r && !(i instanceof e)) {
                        i = e(i)
                    }
                    return r.fn.init.call(this, n, i, t)
                };
                e.fn.init.prototype = e.fn;
                var t = e(n);
                return e
            }, browser: {}});
        r.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(e, t) {
            O["[object " + t + "]"] = t.toLowerCase()
        });
        E = r.uaMatch(C);
        if (E.browser) {
            r.browser[E.browser] = true;
            r.browser.version = E.version
        }
        if (r.browser.webkit) {
            r.browser.safari = true
        }
        if (f.test(" ")) {
            u = /^[\s\xA0]+/;
            c = /[\s\xA0]+$/
        }
        s = r(n);
        if (n.addEventListener) {
            S = function() {
                n.removeEventListener("DOMContentLoaded", S, false);
                r.ready()
            }
        } else {
            if (n.attachEvent) {
                S = function() {
                    if (n.readyState === "complete") {
                        n.detachEvent("onreadystatechange", S);
                        r.ready()
                    }
                }
            }
        }
        function _() {
            if (r.isReady) {
                return
            }
            try {
                n.documentElement.doScroll("left")
            } catch (e) {
                setTimeout(_, 1);
                return
            }
            r.ready()
        }
        return r
    }();
    var o = {};
    function s(e) {
        var t = o[e] = {}, n, i;
        e = e.split(/\s+/);
        for (n = 0, i = e.length; n < i; n++) {
            t[e[n]] = true
        }
        return t
    }
    a.Callbacks = function(e) {
        e = e ? o[e] || s(e) : {};
        var n = [], i = [], r, l, f, u, c, d = function(t) {
            var i, r, o, s, l;
            for (i = 0, r = t.length; i < r; i++) {
                o = t[i];
                s = a.type(o);
                if (s === "array") {
                    d(o)
                } else {
                    if (s === "function") {
                        if (!e.unique || !h.has(o)) {
                            n.push(o)
                        }
                    }
                }
            }
        }, p = function(t, a) {
            a = a || [];
            r = !e.memory || [t, a];
            l = true;
            c = f || 0;
            f = 0;
            u = n.length;
            for (; n && c < u; c++) {
                if (n[c].apply(t, a) === false && e.stopOnFalse) {
                    r = true;
                    break
                }
            }
            l = false;
            if (n) {
                if (!e.once) {
                    if (i && i.length) {
                        r = i.shift();
                        h.fireWith(r[0], r[1])
                    }
                } else {
                    if (r === true) {
                        h.disable()
                    } else {
                        n = []
                    }
                }
            }
        }, h = {add: function() {
                if (n) {
                    var e = n.length;
                    d(arguments);
                    if (l) {
                        u = n.length
                    } else {
                        if (r && r !== true) {
                            f = e;
                            p(r[0], r[1])
                        }
                    }
                }
                return this
            }, remove: function() {
                if (n) {
                    var t = arguments, i = 0, r = t.length;
                    for (; i < r; i++) {
                        for (var a = 0; a < n.length; a++) {
                            if (t[i] === n[a]) {
                                if (l) {
                                    if (a <= u) {
                                        u--;
                                        if (a <= c) {
                                            c--
                                        }
                                    }
                                }
                                n.splice(a--, 1);
                                if (e.unique) {
                                    break
                                }
                            }
                        }
                    }
                }
                return this
            }, has: function(e) {
                if (n) {
                    var t = 0, i = n.length;
                    for (; t < i; t++) {
                        if (e === n[t]) {
                            return true
                        }
                    }
                }
                return false
            }, empty: function() {
                n = [];
                return this
            }, disable: function() {
                n = i = r = t;
                return this
            }, disabled: function() {
                return!n
            }, lock: function() {
                i = t;
                if (!r || r === true) {
                    h.disable()
                }
                return this
            }, locked: function() {
                return!i
            }, fireWith: function(t, n) {
                if (i) {
                    if (l) {
                        if (!e.once) {
                            i.push([t, n])
                        }
                    } else {
                        if (!(e.once && r)) {
                            p(t, n)
                        }
                    }
                }
                return this
            }, fire: function() {
                h.fireWith(this, arguments);
                return this
            }, fired: function() {
                return!!r
            }};
        return h
    };
    var l = [].slice;
    a.extend({Deferred: function(e) {
            var t = a.Callbacks("once memory"), n = a.Callbacks("once memory"), i = a.Callbacks("memory"), r = "pending", o = {resolve: t, reject: n, notify: i}, s = {done: t.add, fail: n.add, progress: i.add, state: function() {
                    return r
                }, isResolved: t.fired, isRejected: n.fired, then: function(e, t, n) {
                    l.done(e).fail(t).progress(n);
                    return this
                }, always: function() {
                    l.done.apply(l, arguments).fail.apply(l, arguments);
                    return this
                }, pipe: function(e, t, n) {
                    return a.Deferred(function(i) {
                        a.each({done: [e, "resolve"], fail: [t, "reject"], progress: [n, "notify"]}, function(e, t) {
                            var n = t[0], r = t[1], o;
                            if (a.isFunction(n)) {
                                l[e](function() {
                                    o = n.apply(this, arguments);
                                    if (o && a.isFunction(o.promise)) {
                                        o.promise().then(i.resolve, i.reject, i.notify)
                                    } else {
                                        i[r + "With"](this === l ? i : this, [o])
                                    }
                                })
                            } else {
                                l[e](i[r])
                            }
                        })
                    }).promise()
                }, promise: function(e) {
                    if (e == null) {
                        e = s
                    } else {
                        for (var t in s) {
                            e[t] = s[t]
                        }
                    }
                    return e
                }}, l = s.promise({}), f;
            for (f in o) {
                l[f] = o[f].fire;
                l[f + "With"] = o[f].fireWith
            }
            l.done(function() {
                r = "resolved"
            }, n.disable, i.lock).fail(function() {
                r = "rejected"
            }, t.disable, i.lock);
            if (e) {
                e.call(l, l)
            }
            return l
        }, when: function(e) {
            var t = l.call(arguments, 0), n = 0, i = t.length, r = new Array(i), o = i, s = i, f = i <= 1 && e && a.isFunction(e.promise) ? e : a.Deferred(), u = f.promise();
            function c(e) {
                return function(n) {
                    t[e] = arguments.length > 1 ? l.call(arguments, 0) : n;
                    if (!--o) {
                        f.resolveWith(f, t)
                    }
                }
            }
            function d(e) {
                return function(t) {
                    r[e] = arguments.length > 1 ? l.call(arguments, 0) : t;
                    f.notifyWith(u, r)
                }
            }
            if (i > 1) {
                for (; n < i; n++) {
                    if (t[n] && t[n].promise && a.isFunction(t[n].promise)) {
                        t[n].promise().then(c(n), f.reject, d(n))
                    } else {
                        --o
                    }
                }
                if (!o) {
                    f.resolveWith(f, t)
                }
            } else {
                if (f !== e) {
                    f.resolveWith(f, i ? [e] : [])
                }
            }
            return u
        }});
    a.support = function() {
        var t, i, r, o, s, l, f, u, c, d, p, h, m, g = n.createElement("div"), y = n.documentElement;
        g.setAttribute("className", "t");
        g.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
        i = g.getElementsByTagName("*");
        r = g.getElementsByTagName("a")[0];
        if (!i || !i.length || !r) {
            return{}
        }
        o = n.createElement("select");
        s = o.appendChild(n.createElement("option"));
        l = g.getElementsByTagName("input")[0];
        t = {leadingWhitespace: g.firstChild.nodeType === 3, tbody: !g.getElementsByTagName("tbody").length, htmlSerialize: !!g.getElementsByTagName("link").length, style: /top/.test(r.getAttribute("style")), hrefNormalized: r.getAttribute("href") === "/a", opacity: /^0.55/.test(r.style.opacity), cssFloat: !!r.style.cssFloat, checkOn: l.value === "on", optSelected: s.selected, getSetAttribute: g.className !== "t", enctype: !!n.createElement("form").enctype, html5Clone: n.createElement("nav").cloneNode(true).outerHTML !== "<:nav></:nav>", submitBubbles: true, changeBubbles: true, focusinBubbles: false, deleteExpando: true, noCloneEvent: true, inlineBlockNeedsLayout: false, shrinkWrapBlocks: false, reliableMarginRight: true};
        l.checked = true;
        t.noCloneChecked = l.cloneNode(true).checked;
        o.disabled = true;
        t.optDisabled = !s.disabled;
        try {
            delete g.test
        } catch (v) {
            t.deleteExpando = false
        }
        if (!g.addEventListener && g.attachEvent && g.fireEvent) {
            g.attachEvent("onclick", function() {
                t.noCloneEvent = false
            });
            g.cloneNode(true).fireEvent("onclick")
        }
        l = n.createElement("input");
        l.value = "t";
        l.setAttribute("type", "radio");
        t.radioValue = l.value === "t";
        l.setAttribute("checked", "checked");
        g.appendChild(l);
        u = n.createDocumentFragment();
        u.appendChild(g.lastChild);
        t.checkClone = u.cloneNode(true).cloneNode(true).lastChild.checked;
        t.appendChecked = l.checked;
        u.removeChild(l);
        u.appendChild(g);
        g.innerHTML = "";
        if (e.getComputedStyle) {
            f = n.createElement("div");
            f.style.width = "0";
            f.style.marginRight = "0";
            g.style.width = "2px";
            g.appendChild(f);
            t.reliableMarginRight = (parseInt((e.getComputedStyle(f, null) || {marginRight: 0}).marginRight, 10) || 0) === 0
        }
        if (g.attachEvent) {
            for (h in{submit: 1, change: 1, focusin: 1}) {
                p = "on" + h;
                m = p in g;
                if (!m) {
                    g.setAttribute(p, "return;");
                    m = typeof g[p] === "function"
                }
                t[h + "Bubbles"] = m
            }
        }
        u.removeChild(g);
        u = o = s = f = g = l = null;
        a(function() {
            var e, i, r, o, s, l, f, u, d, p, h, y = n.getElementsByTagName("body")[0];
            if (!y) {
                return
            }
            f = 1;
            u = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";
            d = "visibility:hidden;border:0;";
            p = "style='" + u + "border:5px solid #000;padding:0;'";
            h = "<div " + p + "><div></div></div><table " + p + " cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
            e = n.createElement("div");
            e.style.cssText = d + "width:0;height:0;position:static;top:0;margin-top:" + f + "px";
            y.insertBefore(e, y.firstChild);
            g = n.createElement("div");
            e.appendChild(g);
            g.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
            c = g.getElementsByTagName("td");
            m = c[0].offsetHeight === 0;
            c[0].style.display = "";
            c[1].style.display = "none";
            t.reliableHiddenOffsets = m && c[0].offsetHeight === 0;
            g.innerHTML = "";
            g.style.width = g.style.paddingLeft = "1px";
            a.boxModel = t.boxModel = g.offsetWidth === 2;
            if (typeof g.style.zoom !== "undefined") {
                g.style.display = "inline";
                g.style.zoom = 1;
                t.inlineBlockNeedsLayout = g.offsetWidth === 2;
                g.style.display = "";
                g.innerHTML = "<div style='width:4px;'></div>";
                t.shrinkWrapBlocks = g.offsetWidth !== 2
            }
            g.style.cssText = u + d;
            g.innerHTML = h;
            i = g.firstChild;
            r = i.firstChild;
            s = i.nextSibling.firstChild.firstChild;
            l = {doesNotAddBorder: r.offsetTop !== 5, doesAddBorderForTableAndCells: s.offsetTop === 5};
            r.style.position = "fixed";
            r.style.top = "20px";
            l.fixedPosition = r.offsetTop === 20 || r.offsetTop === 15;
            r.style.position = r.style.top = "";
            i.style.overflow = "hidden";
            i.style.position = "relative";
            l.subtractsBorderForOverflowNotVisible = r.offsetTop === -5;
            l.doesNotIncludeMarginInBodyOffset = y.offsetTop !== f;
            y.removeChild(e);
            g = e = null;
            a.extend(t, l)
        });
        return t
    }();
    var f = /^(?:\{.*\}|\[.*\])$/, u = /([A-Z])/g;
    a.extend({cache: {}, uuid: 0, expando: "jQuery" + (a.fn.jquery + Math.random()).replace(/\D/g, ""), noData: {embed: true, object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", applet: true}, hasData: function(e) {
            e = e.nodeType ? a.cache[e[a.expando]] : e[a.expando];
            return!!e && !d(e)
        }, data: function(e, n, i, r) {
            if (!a.acceptData(e)) {
                return
            }
            var o, s, l, f = a.expando, u = typeof n === "string", c = e.nodeType, d = c ? a.cache : e, p = c ? e[f] : e[f] && f, h = n === "events";
            if ((!p || !d[p] || !h && !r && !d[p].data) && u && i === t) {
                return
            }
            if (!p) {
                if (c) {
                    e[f] = p = ++a.uuid
                } else {
                    p = f
                }
            }
            if (!d[p]) {
                d[p] = {};
                if (!c) {
                    d[p].toJSON = a.noop
                }
            }
            if (typeof n === "object" || typeof n === "function") {
                if (r) {
                    d[p] = a.extend(d[p], n)
                } else {
                    d[p].data = a.extend(d[p].data, n)
                }
            }
            o = s = d[p];
            if (!r) {
                if (!s.data) {
                    s.data = {}
                }
                s = s.data
            }
            if (i !== t) {
                s[a.camelCase(n)] = i
            }
            if (h && !s[n]) {
                return o.events
            }
            if (u) {
                l = s[n];
                if (l == null) {
                    l = s[a.camelCase(n)]
                }
            } else {
                l = s
            }
            return l
        }, removeData: function(e, t, n) {
            if (!a.acceptData(e)) {
                return
            }
            var i, r, o, s = a.expando, l = e.nodeType, f = l ? a.cache : e, u = l ? e[s] : s;
            if (!f[u]) {
                return
            }
            if (t) {
                i = n ? f[u] : f[u].data;
                if (i) {
                    if (!a.isArray(t)) {
                        if (t in i) {
                            t = [t]
                        } else {
                            t = a.camelCase(t);
                            if (t in i) {
                                t = [t]
                            } else {
                                t = t.split(" ")
                            }
                        }
                    }
                    for (r = 0, o = t.length; r < o; r++) {
                        delete i[t[r]]
                    }
                    if (!(n ? d : a.isEmptyObject)(i)) {
                        return
                    }
                }
            }
            if (!n) {
                delete f[u].data;
                if (!d(f[u])) {
                    return
                }
            }
            if (a.support.deleteExpando || !f.setInterval) {
                delete f[u]
            } else {
                f[u] = null
            }
            if (l) {
                if (a.support.deleteExpando) {
                    delete e[s]
                } else {
                    if (e.removeAttribute) {
                        e.removeAttribute(s)
                    } else {
                        e[s] = null
                    }
                }
            }
        }, _data: function(e, t, n) {
            return a.data(e, t, n, true)
        }, acceptData: function(e) {
            if (e.nodeName) {
                var t = a.noData[e.nodeName.toLowerCase()];
                if (t) {
                    return!(t === true || e.getAttribute("classid") !== t)
                }
            }
            return true
        }});
    a.fn.extend({data: function(e, n) {
            var i, r, o, s = null;
            if (typeof e === "undefined") {
                if (this.length) {
                    s = a.data(this[0]);
                    if (this[0].nodeType === 1 && !a._data(this[0], "parsedAttrs")) {
                        r = this[0].attributes;
                        for (var l = 0, f = r.length; l < f; l++) {
                            o = r[l].name;
                            if (o.indexOf("data-") === 0) {
                                o = a.camelCase(o.substring(5));
                                c(this[0], o, s[o])
                            }
                        }
                        a._data(this[0], "parsedAttrs", true)
                    }
                }
                return s
            } else {
                if (typeof e === "object") {
                    return this.each(function() {
                        a.data(this, e)
                    })
                }
            }
            i = e.split(".");
            i[1] = i[1] ? "." + i[1] : "";
            if (n === t) {
                s = this.triggerHandler("getData" + i[1] + "!", [i[0]]);
                if (s === t && this.length) {
                    s = a.data(this[0], e);
                    s = c(this[0], e, s)
                }
                return s === t && i[1] ? this.data(i[0]) : s
            } else {
                return this.each(function() {
                    var t = a(this), r = [i[0], n];
                    t.triggerHandler("setData" + i[1] + "!", r);
                    a.data(this, e, n);
                    t.triggerHandler("changeData" + i[1] + "!", r)
                })
            }
        }, removeData: function(e) {
            return this.each(function() {
                a.removeData(this, e)
            })
        }});
    function c(e, n, i) {
        if (i === t && e.nodeType === 1) {
            var r = "data-" + n.replace(u, "-$1").toLowerCase();
            i = e.getAttribute(r);
            if (typeof i === "string") {
                try {
                    i = i === "true" ? true : i === "false" ? false : i === "null" ? null : a.isNumeric(i) ? parseFloat(i) : f.test(i) ? a.parseJSON(i) : i
                } catch (o) {
                }
                a.data(e, n, i)
            } else {
                i = t
            }
        }
        return i
    }
    function d(e) {
        for (var t in e) {
            if (t === "data" && a.isEmptyObject(e[t])) {
                continue
            }
            if (t !== "toJSON") {
                return false
            }
        }
        return true
    }
    function p(e, t, n) {
        var i = t + "defer", r = t + "queue", o = t + "mark", s = a._data(e, i);
        if (s && (n === "queue" || !a._data(e, r)) && (n === "mark" || !a._data(e, o))) {
            setTimeout(function() {
                if (!a._data(e, r) && !a._data(e, o)) {
                    a.removeData(e, i, true);
                    s.fire()
                }
            }, 0)
        }
    }
    a.extend({_mark: function(e, t) {
            if (e) {
                t = (t || "fx") + "mark";
                a._data(e, t, (a._data(e, t) || 0) + 1)
            }
        }, _unmark: function(e, t, n) {
            if (e !== true) {
                n = t;
                t = e;
                e = false
            }
            if (t) {
                n = n || "fx";
                var i = n + "mark", r = e ? 0 : (a._data(t, i) || 1) - 1;
                if (r) {
                    a._data(t, i, r)
                } else {
                    a.removeData(t, i, true);
                    p(t, n, "mark")
                }
            }
        }, queue: function(e, t, n) {
            var i;
            if (e) {
                t = (t || "fx") + "queue";
                i = a._data(e, t);
                if (n) {
                    if (!i || a.isArray(n)) {
                        i = a._data(e, t, a.makeArray(n))
                    } else {
                        i.push(n)
                    }
                }
                return i || []
            }
        }, dequeue: function(e, t) {
            t = t || "fx";
            var n = a.queue(e, t), i = n.shift(), r = {};
            if (i === "inprogress") {
                i = n.shift()
            }
            if (i) {
                if (t === "fx") {
                    n.unshift("inprogress")
                }
                a._data(e, t + ".run", r);
                i.call(e, function() {
                    a.dequeue(e, t)
                }, r)
            }
            if (!n.length) {
                a.removeData(e, t + "queue " + t + ".run", true);
                p(e, t, "queue")
            }
        }});
    a.fn.extend({queue: function(e, n) {
            if (typeof e !== "string") {
                n = e;
                e = "fx"
            }
            if (n === t) {
                return a.queue(this[0], e)
            }
            return this.each(function() {
                var t = a.queue(this, e, n);
                if (e === "fx" && t[0] !== "inprogress") {
                    a.dequeue(this, e)
                }
            })
        }, dequeue: function(e) {
            return this.each(function() {
                a.dequeue(this, e)
            })
        }, delay: function(e, t) {
            e = a.fx ? a.fx.speeds[e] || e : e;
            t = t || "fx";
            return this.queue(t, function(t, n) {
                var i = setTimeout(t, e);
                n.stop = function() {
                    clearTimeout(i)
                }
            })
        }, clearQueue: function(e) {
            return this.queue(e || "fx", [])
        }, promise: function(e, n) {
            if (typeof e !== "string") {
                n = e;
                e = t
            }
            e = e || "fx";
            var i = a.Deferred(), r = this, o = r.length, s = 1, l = e + "defer", f = e + "queue", u = e + "mark", c;
            function d() {
                if (!--s) {
                    i.resolveWith(r, [r])
                }
            }
            while (o--) {
                if (c = a.data(r[o], l, t, true) || (a.data(r[o], f, t, true) || a.data(r[o], u, t, true)) && a.data(r[o], l, a.Callbacks("once memory"), true)) {
                    s++;
                    c.add(d)
                }
            }
            d();
            return i.promise()
        }});
    var h = /[\n\t\r]/g, m = /\s+/, g = /\r/g, y = /^(?:button|input)$/i, v = /^(?:button|input|object|select|textarea)$/i, b = /^a(?:rea)?$/i, x = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, w = a.support.getSetAttribute, T, N, C;
    a.fn.extend({attr: function(e, t) {
            return a.access(this, e, t, true, a.attr)
        }, removeAttr: function(e) {
            return this.each(function() {
                a.removeAttr(this, e)
            })
        }, prop: function(e, t) {
            return a.access(this, e, t, true, a.prop)
        }, removeProp: function(e) {
            e = a.propFix[e] || e;
            return this.each(function() {
                try {
                    this[e] = t;
                    delete this[e]
                } catch (n) {
                }
            })
        }, addClass: function(e) {
            var t, n, i, r, o, s, l;
            if (a.isFunction(e)) {
                return this.each(function(t) {
                    a(this).addClass(e.call(this, t, this.className))
                })
            }
            if (e && typeof e === "string") {
                t = e.split(m);
                for (n = 0, i = this.length; n < i; n++) {
                    r = this[n];
                    if (r.nodeType === 1) {
                        if (!r.className && t.length === 1) {
                            r.className = e
                        } else {
                            o = " " + r.className + " ";
                            for (s = 0, l = t.length; s < l; s++) {
                                if (!~o.indexOf(" " + t[s] + " ")) {
                                    o += t[s] + " "
                                }
                            }
                            r.className = a.trim(o)
                        }
                    }
                }
            }
            return this
        }, removeClass: function(e) {
            var n, i, r, o, s, l, f;
            if (a.isFunction(e)) {
                return this.each(function(t) {
                    a(this).removeClass(e.call(this, t, this.className))
                })
            }
            if (e && typeof e === "string" || e === t) {
                n = (e || "").split(m);
                for (i = 0, r = this.length; i < r; i++) {
                    o = this[i];
                    if (o.nodeType === 1 && o.className) {
                        if (e) {
                            s = (" " + o.className + " ").replace(h, " ");
                            for (l = 0, f = n.length; l < f; l++) {
                                s = s.replace(" " + n[l] + " ", " ")
                            }
                            o.className = a.trim(s)
                        } else {
                            o.className = ""
                        }
                    }
                }
            }
            return this
        }, toggleClass: function(e, t) {
            var n = typeof e, i = typeof t === "boolean";
            if (a.isFunction(e)) {
                return this.each(function(n) {
                    a(this).toggleClass(e.call(this, n, this.className, t), t)
                })
            }
            return this.each(function() {
                if (n === "string") {
                    var r, o = 0, s = a(this), l = t, f = e.split(m);
                    while (r = f[o++]) {
                        l = i ? l : !s.hasClass(r);
                        s[l ? "addClass" : "removeClass"](r)
                    }
                } else {
                    if (n === "undefined" || n === "boolean") {
                        if (this.className) {
                            a._data(this, "__className__", this.className)
                        }
                        this.className = this.className || e === false ? "" : a._data(this, "__className__") || ""
                    }
                }
            })
        }, hasClass: function(e) {
            var t = " " + e + " ", n = 0, i = this.length;
            for (; n < i; n++) {
                if (this[n].nodeType === 1 && (" " + this[n].className + " ").replace(h, " ").indexOf(t) > -1) {
                    return true
                }
            }
            return false
        }, val: function(e) {
            var n, i, r, o = this[0];
            if (!arguments.length) {
                if (o) {
                    n = a.valHooks[o.nodeName.toLowerCase()] || a.valHooks[o.type];
                    if (n && "get"in n && (i = n.get(o, "value")) !== t) {
                        return i
                    }
                    i = o.value;
                    return typeof i === "string" ? i.replace(g, "") : i == null ? "" : i
                }
                return
            }
            r = a.isFunction(e);
            return this.each(function(i) {
                var o = a(this), s;
                if (this.nodeType !== 1) {
                    return
                }
                if (r) {
                    s = e.call(this, i, o.val())
                } else {
                    s = e
                }
                if (s == null) {
                    s = ""
                } else {
                    if (typeof s === "number") {
                        s += ""
                    } else {
                        if (a.isArray(s)) {
                            s = a.map(s, function(e) {
                                return e == null ? "" : e + ""
                            })
                        }
                    }
                }
                n = a.valHooks[this.nodeName.toLowerCase()] || a.valHooks[this.type];
                if (!n || !("set"in n) || n.set(this, s, "value") === t) {
                    this.value = s
                }
            })
        }});
    a.extend({valHooks: {option: {get: function(e) {
                    var t = e.attributes.value;
                    return!t || t.specified ? e.value : e.text
                }}, select: {get: function(e) {
                    var t, n, i, r, o = e.selectedIndex, s = [], l = e.options, f = e.type === "select-one";
                    if (o < 0) {
                        return null
                    }
                    n = f ? o : 0;
                    i = f ? o + 1 : l.length;
                    for (; n < i; n++) {
                        r = l[n];
                        if (r.selected && (a.support.optDisabled ? !r.disabled : r.getAttribute("disabled") === null) && (!r.parentNode.disabled || !a.nodeName(r.parentNode, "optgroup"))) {
                            t = a(r).val();
                            if (f) {
                                return t
                            }
                            s.push(t)
                        }
                    }
                    if (f && !s.length && l.length) {
                        return a(l[o]).val()
                    }
                    return s
                }, set: function(e, t) {
                    var n = a.makeArray(t);
                    a(e).find("option").each(function() {
                        this.selected = a.inArray(a(this).val(), n) >= 0
                    });
                    if (!n.length) {
                        e.selectedIndex = -1
                    }
                    return n
                }}}, attrFn: {val: true, css: true, html: true, text: true, data: true, width: true, height: true, offset: true}, attr: function(e, n, i, r) {
            var o, s, l, f = e.nodeType;
            if (!e || f === 3 || f === 8 || f === 2) {
                return
            }
            if (r && n in a.attrFn) {
                return a(e)[n](i)
            }
            if (typeof e.getAttribute === "undefined") {
                return a.prop(e, n, i)
            }
            l = f !== 1 || !a.isXMLDoc(e);
            if (l) {
                n = n.toLowerCase();
                s = a.attrHooks[n] || (x.test(n) ? N : T)
            }
            if (i !== t) {
                if (i === null) {
                    a.removeAttr(e, n);
                    return
                } else {
                    if (s && "set"in s && l && (o = s.set(e, i, n)) !== t) {
                        return o
                    } else {
                        e.setAttribute(n, "" + i);
                        return i
                    }
                }
            } else {
                if (s && "get"in s && l && (o = s.get(e, n)) !== null) {
                    return o
                } else {
                    o = e.getAttribute(n);
                    return o === null ? t : o
                }
            }
        }, removeAttr: function(e, t) {
            var n, i, r, o, s = 0;
            if (t && e.nodeType === 1) {
                i = t.toLowerCase().split(m);
                o = i.length;
                for (; s < o; s++) {
                    r = i[s];
                    if (r) {
                        n = a.propFix[r] || r;
                        a.attr(e, r, "");
                        e.removeAttribute(w ? r : n);
                        if (x.test(r) && n in e) {
                            e[n] = false
                        }
                    }
                }
            }
        }, attrHooks: {type: {set: function(e, t) {
                    if (y.test(e.nodeName) && e.parentNode) {
                        a.error("type property can't be changed")
                    } else {
                        if (!a.support.radioValue && t === "radio" && a.nodeName(e, "input")) {
                            var n = e.value;
                            e.setAttribute("type", t);
                            if (n) {
                                e.value = n
                            }
                            return t
                        }
                    }
                }}, value: {get: function(e, t) {
                    if (T && a.nodeName(e, "button")) {
                        return T.get(e, t)
                    }
                    return t in e ? e.value : null
                }, set: function(e, t, n) {
                    if (T && a.nodeName(e, "button")) {
                        return T.set(e, t, n)
                    }
                    e.value = t
                }}}, propFix: {tabindex: "tabIndex", readonly: "readOnly", "for": "htmlFor", "class": "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder", contenteditable: "contentEditable"}, prop: function(e, n, i) {
            var r, o, s, l = e.nodeType;
            if (!e || l === 3 || l === 8 || l === 2) {
                return
            }
            s = l !== 1 || !a.isXMLDoc(e);
            if (s) {
                n = a.propFix[n] || n;
                o = a.propHooks[n]
            }
            if (i !== t) {
                if (o && "set"in o && (r = o.set(e, i, n)) !== t) {
                    return r
                } else {
                    return e[n] = i
                }
            } else {
                if (o && "get"in o && (r = o.get(e, n)) !== null) {
                    return r
                } else {
                    return e[n]
                }
            }
        }, propHooks: {tabIndex: {get: function(e) {
                    var n = e.getAttributeNode("tabindex");
                    return n && n.specified ? parseInt(n.value, 10) : v.test(e.nodeName) || b.test(e.nodeName) && e.href ? 0 : t
                }}}});
    a.attrHooks.tabindex = a.propHooks.tabIndex;
    N = {get: function(e, n) {
            var i, r = a.prop(e, n);
            return r === true || typeof r !== "boolean" && (i = e.getAttributeNode(n)) && i.nodeValue !== false ? n.toLowerCase() : t
        }, set: function(e, t, n) {
            var i;
            if (t === false) {
                a.removeAttr(e, n)
            } else {
                i = a.propFix[n] || n;
                if (i in e) {
                    e[i] = true
                }
                e.setAttribute(n, n.toLowerCase())
            }
            return n
        }};
    if (!w) {
        C = {name: true, id: true};
        T = a.valHooks.button = {get: function(e, n) {
                var i;
                i = e.getAttributeNode(n);
                return i && (C[n] ? i.nodeValue !== "" : i.specified) ? i.nodeValue : t
            }, set: function(e, t, i) {
                var r = e.getAttributeNode(i);
                if (!r) {
                    r = n.createAttribute(i);
                    e.setAttributeNode(r)
                }
                return r.nodeValue = t + ""
            }};
        a.attrHooks.tabindex.set = T.set;
        a.each(["width", "height"], function(e, t) {
            a.attrHooks[t] = a.extend(a.attrHooks[t], {set: function(e, n) {
                    if (n === "") {
                        e.setAttribute(t, "auto");
                        return n
                    }
                }})
        });
        a.attrHooks.contenteditable = {get: T.get, set: function(e, t, n) {
                if (t === "") {
                    t = "false"
                }
                T.set(e, t, n)
            }}
    }
    if (!a.support.hrefNormalized) {
        a.each(["href", "src", "width", "height"], function(e, n) {
            a.attrHooks[n] = a.extend(a.attrHooks[n], {get: function(e) {
                    var i = e.getAttribute(n, 2);
                    return i === null ? t : i
                }})
        })
    }
    if (!a.support.style) {
        a.attrHooks.style = {get: function(e) {
                return e.style.cssText.toLowerCase() || t
            }, set: function(e, t) {
                return e.style.cssText = "" + t
            }}
    }
    if (!a.support.optSelected) {
        a.propHooks.selected = a.extend(a.propHooks.selected, {get: function(e) {
                var t = e.parentNode;
                if (t) {
                    t.selectedIndex;
                    if (t.parentNode) {
                        t.parentNode.selectedIndex
                    }
                }
                return null
            }})
    }
    if (!a.support.enctype) {
        a.propFix.enctype = "encoding"
    }
    if (!a.support.checkOn) {
        a.each(["radio", "checkbox"], function() {
            a.valHooks[this] = {get: function(e) {
                    return e.getAttribute("value") === null ? "on" : e.value
                }}
        })
    }
    a.each(["radio", "checkbox"], function() {
        a.valHooks[this] = a.extend(a.valHooks[this], {set: function(e, t) {
                if (a.isArray(t)) {
                    return e.checked = a.inArray(a(e).val(), t) >= 0
                }
            }})
    });
    var E = /^(?:textarea|input|select)$/i, k = /^([^\.]*)?(?:\.(.+))?$/, S = /\bhover(\.\S+)?\b/, A = /^key/, L = /^(?:mouse|contextmenu)|click/, j = /^(?:focusinfocus|focusoutblur)$/, F = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/, D = function(e) {
        var t = F.exec(e);
        if (t) {
            t[1] = (t[1] || "").toLowerCase();
            t[3] = t[3] && new RegExp("(?:^|\\s)" + t[3] + "(?:\\s|$)")
        }
        return t
    }, M = function(e, t) {
        var n = e.attributes || {};
        return(!t[1] || e.nodeName.toLowerCase() === t[1]) && (!t[2] || (n.id || {}).value === t[2]) && (!t[3] || t[3].test((n["class"] || {}).value))
    }, O = function(e) {
        return a.event.special.hover ? e : e.replace(S, "mouseenter$1 mouseleave$1")
    };
    a.event = {add: function(e, n, i, r, o) {
            var s, l, f, u, c, d, p, h, m, g, y, v;
            if (e.nodeType === 3 || e.nodeType === 8 || !n || !i || !(s = a._data(e))) {
                return
            }
            if (i.handler) {
                m = i;
                i = m.handler
            }
            if (!i.guid) {
                i.guid = a.guid++
            }
            f = s.events;
            if (!f) {
                s.events = f = {}
            }
            l = s.handle;
            if (!l) {
                s.handle = l = function(e) {
                    return typeof a !== "undefined" && (!e || a.event.triggered !== e.type) ? a.event.dispatch.apply(l.elem, arguments) : t
                };
                l.elem = e
            }
            n = a.trim(O(n)).split(" ");
            for (u = 0; u < n.length; u++) {
                c = k.exec(n[u]) || [];
                d = c[1];
                p = (c[2] || "").split(".").sort();
                v = a.event.special[d] || {};
                d = (o ? v.delegateType : v.bindType) || d;
                v = a.event.special[d] || {};
                h = a.extend({type: d, origType: c[1], data: r, handler: i, guid: i.guid, selector: o, quick: D(o), namespace: p.join(".")}, m);
                y = f[d];
                if (!y) {
                    y = f[d] = [];
                    y.delegateCount = 0;
                    if (!v.setup || v.setup.call(e, r, p, l) === false) {
                        if (e.addEventListener) {
                            e.addEventListener(d, l, false)
                        } else {
                            if (e.attachEvent) {
                                e.attachEvent("on" + d, l)
                            }
                        }
                    }
                }
                if (v.add) {
                    v.add.call(e, h);
                    if (!h.handler.guid) {
                        h.handler.guid = i.guid
                    }
                }
                if (o) {
                    y.splice(y.delegateCount++, 0, h)
                } else {
                    y.push(h)
                }
                a.event.global[d] = true
            }
            e = null
        }, global: {}, remove: function(e, t, n, i, r) {
            var o = a.hasData(e) && a._data(e), s, l, f, u, c, d, p, h, m, g, y, v;
            if (!o || !(h = o.events)) {
                return
            }
            t = a.trim(O(t || "")).split(" ");
            for (s = 0; s < t.length; s++) {
                l = k.exec(t[s]) || [];
                f = u = l[1];
                c = l[2];
                if (!f) {
                    for (f in h) {
                        a.event.remove(e, f + t[s], n, i, true)
                    }
                    continue
                }
                m = a.event.special[f] || {};
                f = (i ? m.delegateType : m.bindType) || f;
                y = h[f] || [];
                d = y.length;
                c = c ? new RegExp("(^|\\.)" + c.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
                for (p = 0; p < y.length; p++) {
                    v = y[p];
                    if ((r || u === v.origType) && (!n || n.guid === v.guid) && (!c || c.test(v.namespace)) && (!i || i === v.selector || i === "**" && v.selector)) {
                        y.splice(p--, 1);
                        if (v.selector) {
                            y.delegateCount--
                        }
                        if (m.remove) {
                            m.remove.call(e, v)
                        }
                    }
                }
                if (y.length === 0 && d !== y.length) {
                    if (!m.teardown || m.teardown.call(e, c) === false) {
                        a.removeEvent(e, f, o.handle)
                    }
                    delete h[f]
                }
            }
            if (a.isEmptyObject(h)) {
                g = o.handle;
                if (g) {
                    g.elem = null
                }
                a.removeData(e, ["events", "handle"], true)
            }
        }, customEvent: {getData: true, setData: true, changeData: true}, trigger: function(n, i, r, o) {
            if (r && (r.nodeType === 3 || r.nodeType === 8)) {
                return
            }
            var s = n.type || n, l = [], f, u, c, d, p, h, m, g, y, v;
            if (j.test(s + a.event.triggered)) {
                return
            }
            if (s.indexOf("!") >= 0) {
                s = s.slice(0, -1);
                u = true
            }
            if (s.indexOf(".") >= 0) {
                l = s.split(".");
                s = l.shift();
                l.sort()
            }
            if ((!r || a.event.customEvent[s]) && !a.event.global[s]) {
                return
            }
            n = typeof n === "object" ? n[a.expando] ? n : new a.Event(s, n) : new a.Event(s);
            n.type = s;
            n.isTrigger = true;
            n.exclusive = u;
            n.namespace = l.join(".");
            n.namespace_re = n.namespace ? new RegExp("(^|\\.)" + l.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
            h = s.indexOf(":") < 0 ? "on" + s : "";
            if (!r) {
                f = a.cache;
                for (c in f) {
                    if (f[c].events && f[c].events[s]) {
                        a.event.trigger(n, i, f[c].handle.elem, true)
                    }
                }
                return
            }
            n.result = t;
            if (!n.target) {
                n.target = r
            }
            i = i != null ? a.makeArray(i) : [];
            i.unshift(n);
            m = a.event.special[s] || {};
            if (m.trigger && m.trigger.apply(r, i) === false) {
                return
            }
            y = [[r, m.bindType || s]];
            if (!o && !m.noBubble && !a.isWindow(r)) {
                v = m.delegateType || s;
                d = j.test(v + s) ? r : r.parentNode;
                p = null;
                for (; d; d = d.parentNode) {
                    y.push([d, v]);
                    p = d
                }
                if (p && p === r.ownerDocument) {
                    y.push([p.defaultView || p.parentWindow || e, v])
                }
            }
            for (c = 0; c < y.length && !n.isPropagationStopped(); c++) {
                d = y[c][0];
                n.type = y[c][1];
                g = (a._data(d, "events") || {})[n.type] && a._data(d, "handle");
                if (g) {
                    g.apply(d, i)
                }
                g = h && d[h];
                if (g && a.acceptData(d) && g.apply(d, i) === false) {
                    n.preventDefault()
                }
            }
            n.type = s;
            if (!o && !n.isDefaultPrevented()) {
                if ((!m._default || m._default.apply(r.ownerDocument, i) === false) && !(s === "click" && a.nodeName(r, "a")) && a.acceptData(r)) {
                    if (h && r[s] && (s !== "focus" && s !== "blur" || n.target.offsetWidth !== 0) && !a.isWindow(r)) {
                        p = r[h];
                        if (p) {
                            r[h] = null
                        }
                        a.event.triggered = s;
                        r[s]();
                        a.event.triggered = t;
                        if (p) {
                            r[h] = p
                        }
                    }
                }
            }
            return n.result
        }, dispatch: function(n) {
            n = a.event.fix(n || e.event);
            var i = (a._data(this, "events") || {})[n.type] || [], r = i.delegateCount, o = [].slice.call(arguments, 0), s = !n.exclusive && !n.namespace, l = [], f, u, c, d, p, h, m, g, y, v, b;
            o[0] = n;
            n.delegateTarget = this;
            if (r && !n.target.disabled && !(n.button && n.type === "click")) {
                d = a(this);
                d.context = this.ownerDocument || this;
                for (c = n.target; c != this; c = c.parentNode || this) {
                    h = {};
                    g = [];
                    d[0] = c;
                    for (f = 0; f < r; f++) {
                        y = i[f];
                        v = y.selector;
                        if (h[v] === t) {
                            h[v] = y.quick ? M(c, y.quick) : d.is(v)
                        }
                        if (h[v]) {
                            g.push(y)
                        }
                    }
                    if (g.length) {
                        l.push({elem: c, matches: g})
                    }
                }
            }
            if (i.length > r) {
                l.push({elem: this, matches: i.slice(r)})
            }
            for (f = 0; f < l.length && !n.isPropagationStopped(); f++) {
                m = l[f];
                n.currentTarget = m.elem;
                for (u = 0; u < m.matches.length && !n.isImmediatePropagationStopped(); u++) {
                    y = m.matches[u];
                    if (s || !n.namespace && !y.namespace || n.namespace_re && n.namespace_re.test(y.namespace)) {
                        n.data = y.data;
                        n.handleObj = y;
                        p = ((a.event.special[y.origType] || {}).handle || y.handler).apply(m.elem, o);
                        if (p !== t) {
                            n.result = p;
                            if (p === false) {
                                n.preventDefault();
                                n.stopPropagation()
                            }
                        }
                    }
                }
            }
            return n.result
        }, props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), fixHooks: {}, keyHooks: {props: "char charCode key keyCode".split(" "), filter: function(e, t) {
                if (e.which == null) {
                    e.which = t.charCode != null ? t.charCode : t.keyCode
                }
                return e
            }}, mouseHooks: {props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), filter: function(e, i) {
                var r, a, o, s = i.button, l = i.fromElement;
                if (e.pageX == null && i.clientX != null) {
                    r = e.target.ownerDocument || n;
                    a = r.documentElement;
                    o = r.body;
                    e.pageX = i.clientX + (a && a.scrollLeft || o && o.scrollLeft || 0) - (a && a.clientLeft || o && o.clientLeft || 0);
                    e.pageY = i.clientY + (a && a.scrollTop || o && o.scrollTop || 0) - (a && a.clientTop || o && o.clientTop || 0)
                }
                if (!e.relatedTarget && l) {
                    e.relatedTarget = l === e.target ? i.toElement : l
                }
                if (!e.which && s !== t) {
                    e.which = s & 1 ? 1 : s & 2 ? 3 : s & 4 ? 2 : 0
                }
                return e
            }}, fix: function(e) {
            if (e[a.expando]) {
                return e
            }
            var i, r, o = e, s = a.event.fixHooks[e.type] || {}, l = s.props ? this.props.concat(s.props) : this.props;
            e = a.Event(o);
            for (i = l.length; i; ) {
                r = l[--i];
                e[r] = o[r]
            }
            if (!e.target) {
                e.target = o.srcElement || n
            }
            if (e.target.nodeType === 3) {
                e.target = e.target.parentNode
            }
            if (e.metaKey === t) {
                e.metaKey = e.ctrlKey
            }
            return s.filter ? s.filter(e, o) : e
        }, special: {ready: {setup: a.bindReady}, load: {noBubble: true}, focus: {delegateType: "focusin"}, blur: {delegateType: "focusout"}, beforeunload: {setup: function(e, t, n) {
                    if (a.isWindow(this)) {
                        this.onbeforeunload = n
                    }
                }, teardown: function(e, t) {
                    if (this.onbeforeunload === t) {
                        this.onbeforeunload = null
                    }
                }}}, simulate: function(e, t, n, i) {
            var r = a.extend(new a.Event, n, {type: e, isSimulated: true, originalEvent: {}});
            if (i) {
                a.event.trigger(r, null, t)
            } else {
                a.event.dispatch.call(t, r)
            }
            if (r.isDefaultPrevented()) {
                n.preventDefault()
            }
        }};
    a.event.handle = a.event.dispatch;
    a.removeEvent = n.removeEventListener ? function(e, t, n) {
        if (e.removeEventListener) {
            e.removeEventListener(t, n, false)
        }
    } : function(e, t, n) {
        if (e.detachEvent) {
            e.detachEvent("on" + t, n)
        }
    };
    a.Event = function(e, t) {
        if (!(this instanceof a.Event)) {
            return new a.Event(e, t)
        }
        if (e && e.type) {
            this.originalEvent = e;
            this.type = e.type;
            this.isDefaultPrevented = e.defaultPrevented || e.returnValue === false || e.getPreventDefault && e.getPreventDefault() ? H : _
        } else {
            this.type = e
        }
        if (t) {
            a.extend(this, t)
        }
        this.timeStamp = e && e.timeStamp || a.now();
        this[a.expando] = true
    };
    function _() {
        return false
    }
    function H() {
        return true
    }
    a.Event.prototype = {preventDefault: function() {
            this.isDefaultPrevented = H;
            var e = this.originalEvent;
            if (!e) {
                return
            }
            if (e.preventDefault) {
                e.preventDefault()
            } else {
                e.returnValue = false
            }
        }, stopPropagation: function() {
            this.isPropagationStopped = H;
            var e = this.originalEvent;
            if (!e) {
                return
            }
            if (e.stopPropagation) {
                e.stopPropagation()
            }
            e.cancelBubble = true
        }, stopImmediatePropagation: function() {
            this.isImmediatePropagationStopped = H;
            this.stopPropagation()
        }, isDefaultPrevented: _, isPropagationStopped: _, isImmediatePropagationStopped: _};
    a.each({mouseenter: "mouseover", mouseleave: "mouseout"}, function(e, t) {
        a.event.special[e] = {delegateType: t, bindType: t, handle: function(e) {
                var n = this, i = e.relatedTarget, r = e.handleObj, o = r.selector, s;
                if (!i || i !== n && !a.contains(n, i)) {
                    e.type = r.origType;
                    s = r.handler.apply(this, arguments);
                    e.type = t
                }
                return s
            }}
    });
    if (!a.support.submitBubbles) {
        a.event.special.submit = {setup: function() {
                if (a.nodeName(this, "form")) {
                    return false
                }
                a.event.add(this, "click._submit keypress._submit", function(e) {
                    var n = e.target, i = a.nodeName(n, "input") || a.nodeName(n, "button") ? n.form : t;
                    if (i && !i._submit_attached) {
                        a.event.add(i, "submit._submit", function(e) {
                            if (this.parentNode && !e.isTrigger) {
                                a.event.simulate("submit", this.parentNode, e, true)
                            }
                        });
                        i._submit_attached = true
                    }
                })
            }, teardown: function() {
                if (a.nodeName(this, "form")) {
                    return false
                }
                a.event.remove(this, "._submit")
            }}
    }
    if (!a.support.changeBubbles) {
        a.event.special.change = {setup: function() {
                if (E.test(this.nodeName)) {
                    if (this.type === "checkbox" || this.type === "radio") {
                        a.event.add(this, "propertychange._change", function(e) {
                            if (e.originalEvent.propertyName === "checked") {
                                this._just_changed = true
                            }
                        });
                        a.event.add(this, "click._change", function(e) {
                            if (this._just_changed && !e.isTrigger) {
                                this._just_changed = false;
                                a.event.simulate("change", this, e, true)
                            }
                        })
                    }
                    return false
                }
                a.event.add(this, "beforeactivate._change", function(e) {
                    var t = e.target;
                    if (E.test(t.nodeName) && !t._change_attached) {
                        a.event.add(t, "change._change", function(e) {
                            if (this.parentNode && !e.isSimulated && !e.isTrigger) {
                                a.event.simulate("change", this.parentNode, e, true)
                            }
                        });
                        t._change_attached = true
                    }
                })
            }, handle: function(e) {
                var t = e.target;
                if (this !== t || e.isSimulated || e.isTrigger || t.type !== "radio" && t.type !== "checkbox") {
                    return e.handleObj.handler.apply(this, arguments)
                }
            }, teardown: function() {
                a.event.remove(this, "._change");
                return E.test(this.nodeName)
            }}
    }
    if (!a.support.focusinBubbles) {
        a.each({focus: "focusin", blur: "focusout"}, function(e, t) {
            var i = 0, r = function(e) {
                a.event.simulate(t, e.target, a.event.fix(e), true)
            };
            a.event.special[t] = {setup: function() {
                    if (i++ === 0) {
                        n.addEventListener(e, r, true)
                    }
                }, teardown: function() {
                    if (--i === 0) {
                        n.removeEventListener(e, r, true)
                    }
                }}
        })
    }
    a.fn.extend({on: function(e, n, i, r, o) {
            var s, l;
            if (typeof e === "object") {
                if (typeof n !== "string") {
                    i = n;
                    n = t
                }
                for (l in e) {
                    this.on(l, n, i, e[l], o)
                }
                return this
            }
            if (i == null && r == null) {
                r = n;
                i = n = t
            } else {
                if (r == null) {
                    if (typeof n === "string") {
                        r = i;
                        i = t
                    } else {
                        r = i;
                        i = n;
                        n = t
                    }
                }
            }
            if (r === false) {
                r = _
            } else {
                if (!r) {
                    return this
                }
            }
            if (o === 1) {
                s = r;
                r = function(e) {
                    a().off(e);
                    return s.apply(this, arguments)
                };
                r.guid = s.guid || (s.guid = a.guid++)
            }
            return this.each(function() {
                a.event.add(this, e, r, i, n)
            })
        }, one: function(e, t, n, i) {
            return this.on.call(this, e, t, n, i, 1)
        }, off: function(e, n, i) {
            if (e && e.preventDefault && e.handleObj) {
                var r = e.handleObj;
                a(e.delegateTarget).off(r.namespace ? r.type + "." + r.namespace : r.type, r.selector, r.handler);
                return this
            }
            if (typeof e === "object") {
                for (var o in e) {
                    this.off(o, n, e[o])
                }
                return this
            }
            if (n === false || typeof n === "function") {
                i = n;
                n = t
            }
            if (i === false) {
                i = _
            }
            return this.each(function() {
                a.event.remove(this, e, i, n)
            })
        }, bind: function(e, t, n) {
            return this.on(e, null, t, n)
        }, unbind: function(e, t) {
            return this.off(e, null, t)
        }, live: function(e, t, n) {
            a(this.context).on(e, this.selector, t, n);
            return this
        }, die: function(e, t) {
            a(this.context).off(e, this.selector || "**", t);
            return this
        }, delegate: function(e, t, n, i) {
            return this.on(t, e, n, i)
        }, undelegate: function(e, t, n) {
            return arguments.length == 1 ? this.off(e, "**") : this.off(t, e, n)
        }, trigger: function(e, t) {
            return this.each(function() {
                a.event.trigger(e, t, this)
            })
        }, triggerHandler: function(e, t) {
            if (this[0]) {
                return a.event.trigger(e, t, this[0], true)
            }
        }, toggle: function(e) {
            var t = arguments, n = e.guid || a.guid++, i = 0, r = function(n) {
                var r = (a._data(this, "lastToggle" + e.guid) || 0) % i;
                a._data(this, "lastToggle" + e.guid, r + 1);
                n.preventDefault();
                return t[r].apply(this, arguments) || false
            };
            r.guid = n;
            while (i < t.length) {
                t[i++].guid = n
            }
            return this.click(r)
        }, hover: function(e, t) {
            return this.mouseenter(e).mouseleave(t || e)
        }});
    a.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(e, t) {
        a.fn[t] = function(e, n) {
            if (n == null) {
                n = e;
                e = null
            }
            return arguments.length > 0 ? this.on(t, null, e, n) : this.trigger(t)
        };
        if (a.attrFn) {
            a.attrFn[t] = true
        }
        if (A.test(t)) {
            a.event.fixHooks[t] = a.event.keyHooks
        }
        if (L.test(t)) {
            a.event.fixHooks[t] = a.event.mouseHooks
        }
    });
    !function() {
        var e = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, i = "sizcache" + (Math.random() + "").replace(".", ""), r = 0, o = Object.prototype.toString, s = false, l = true, f = /\\/g, u = /\r\n/g, c = /\W/;
        [0, 0].sort(function() {
            l = false;
            return 0
        });
        var d = function(t, i, r, a) {
            r = r || [];
            i = i || n;
            var s = i;
            if (i.nodeType !== 1 && i.nodeType !== 9) {
                return[]
            }
            if (!t || typeof t !== "string") {
                return r
            }
            var l, f, u, c, p, g, y, b, x = true, w = d.isXML(i), T = [], N = t;
            do {
                e.exec("");
                l = e.exec(N);
                if (l) {
                    N = l[3];
                    T.push(l[1]);
                    if (l[2]) {
                        c = l[3];
                        break
                    }
                }
            } while (l);
            if (T.length > 1 && m.exec(t)) {
                if (T.length === 2 && h.relative[T[0]]) {
                    f = C(T[0] + T[1], i, a)
                } else {
                    f = h.relative[T[0]] ? [i] : d(T.shift(), i);
                    while (T.length) {
                        t = T.shift();
                        if (h.relative[t]) {
                            t += T.shift()
                        }
                        f = C(t, f, a)
                    }
                }
            } else {
                if (!a && T.length > 1 && i.nodeType === 9 && !w && h.match.ID.test(T[0]) && !h.match.ID.test(T[T.length - 1])) {
                    p = d.find(T.shift(), i, w);
                    i = p.expr ? d.filter(p.expr, p.set)[0] : p.set[0]
                }
                if (i) {
                    p = a ? {expr: T.pop(), set: v(a)} : d.find(T.pop(), T.length === 1 && (T[0] === "~" || T[0] === "+") && i.parentNode ? i.parentNode : i, w);
                    f = p.expr ? d.filter(p.expr, p.set) : p.set;
                    if (T.length > 0) {
                        u = v(f)
                    } else {
                        x = false
                    }
                    while (T.length) {
                        g = T.pop();
                        y = g;
                        if (!h.relative[g]) {
                            g = ""
                        } else {
                            y = T.pop()
                        }
                        if (y == null) {
                            y = i
                        }
                        h.relative[g](u, y, w)
                    }
                } else {
                    u = T = []
                }
            }
            if (!u) {
                u = f
            }
            if (!u) {
                d.error(g || t)
            }
            if (o.call(u) === "[object Array]") {
                if (!x) {
                    r.push.apply(r, u)
                } else {
                    if (i && i.nodeType === 1) {
                        for (b = 0; u[b] != null; b++) {
                            if (u[b] && (u[b] === true || u[b].nodeType === 1 && d.contains(i, u[b]))) {
                                r.push(f[b])
                            }
                        }
                    } else {
                        for (b = 0; u[b] != null; b++) {
                            if (u[b] && u[b].nodeType === 1) {
                                r.push(f[b])
                            }
                        }
                    }
                }
            } else {
                v(u, r)
            }
            if (c) {
                d(c, s, r, a);
                d.uniqueSort(r)
            }
            return r
        };
        d.uniqueSort = function(e) {
            if (x) {
                s = l;
                e.sort(x);
                if (s) {
                    for (var t = 1; t < e.length; t++) {
                        if (e[t] === e[t - 1]) {
                            e.splice(t--, 1)
                        }
                    }
                }
            }
            return e
        };
        d.matches = function(e, t) {
            return d(e, null, null, t)
        };
        d.matchesSelector = function(e, t) {
            return d(t, null, null, [e]).length > 0
        };
        d.find = function(e, t, n) {
            var i, r, a, o, s, l;
            if (!e) {
                return[]
            }
            for (r = 0, a = h.order.length; r < a; r++) {
                s = h.order[r];
                if (o = h.leftMatch[s].exec(e)) {
                    l = o[1];
                    o.splice(1, 1);
                    if (l.substr(l.length - 1) !== "\\") {
                        o[1] = (o[1] || "").replace(f, "");
                        i = h.find[s](o, t, n);
                        if (i != null) {
                            e = e.replace(h.match[s], "");
                            break
                        }
                    }
                }
            }
            if (!i) {
                i = typeof t.getElementsByTagName !== "undefined" ? t.getElementsByTagName("*") : []
            }
            return{set: i, expr: e}
        };
        d.filter = function(e, n, i, r) {
            var a, o, s, l, f, u, c, p, m, g = e, y = [], v = n, b = n && n[0] && d.isXML(n[0]);
            while (e && n.length) {
                for (s in h.filter) {
                    if ((a = h.leftMatch[s].exec(e)) != null && a[2]) {
                        u = h.filter[s];
                        c = a[1];
                        o = false;
                        a.splice(1, 1);
                        if (c.substr(c.length - 1) === "\\") {
                            continue
                        }
                        if (v === y) {
                            y = []
                        }
                        if (h.preFilter[s]) {
                            a = h.preFilter[s](a, v, i, y, r, b);
                            if (!a) {
                                o = l = true
                            } else {
                                if (a === true) {
                                    continue
                                }
                            }
                        }
                        if (a) {
                            for (p = 0; (f = v[p]) != null; p++) {
                                if (f) {
                                    l = u(f, a, p, v);
                                    m = r ^ l;
                                    if (i && l != null) {
                                        if (m) {
                                            o = true
                                        } else {
                                            v[p] = false
                                        }
                                    } else {
                                        if (m) {
                                            y.push(f);
                                            o = true
                                        }
                                    }
                                }
                            }
                        }
                        if (l !== t) {
                            if (!i) {
                                v = y
                            }
                            e = e.replace(h.match[s], "");
                            if (!o) {
                                return[]
                            }
                            break
                        }
                    }
                }
                if (e === g) {
                    if (o == null) {
                        d.error(e)
                    } else {
                        break
                    }
                }
                g = e
            }
            return v
        };
        d.error = function(e) {
            throw new Error("Syntax error, unrecognized expression: " + e)
        };
        var p = d.getText = function(e) {
            var t, n, i = e.nodeType, r = "";
            if (i) {
                if (i === 1 || i === 9) {
                    if (typeof e.textContent === "string") {
                        return e.textContent
                    } else {
                        if (typeof e.innerText === "string") {
                            return e.innerText.replace(u, "")
                        } else {
                            for (e = e.firstChild; e; e = e.nextSibling) {
                                r += p(e)
                            }
                        }
                    }
                } else {
                    if (i === 3 || i === 4) {
                        return e.nodeValue
                    }
                }
            } else {
                for (t = 0; n = e[t]; t++) {
                    if (n.nodeType !== 8) {
                        r += p(n)
                    }
                }
            }
            return r
        };
        var h = d.selectors = {order: ["ID", "NAME", "TAG"], match: {ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/}, leftMatch: {}, attrMap: {"class": "className", "for": "htmlFor"}, attrHandle: {href: function(e) {
                    return e.getAttribute("href")
                }, type: function(e) {
                    return e.getAttribute("type")
                }}, relative: {"+": function(e, t) {
                    var n = typeof t === "string", i = n && !c.test(t), r = n && !i;
                    if (i) {
                        t = t.toLowerCase()
                    }
                    for (var a = 0, o = e.length, s; a < o; a++) {
                        if (s = e[a]) {
                            while ((s = s.previousSibling) && s.nodeType !== 1) {
                            }
                            e[a] = r || s && s.nodeName.toLowerCase() === t ? s || false : s === t
                        }
                    }
                    if (r) {
                        d.filter(t, e, true)
                    }
                }, ">": function(e, t) {
                    var n, i = typeof t === "string", r = 0, a = e.length;
                    if (i && !c.test(t)) {
                        t = t.toLowerCase();
                        for (; r < a; r++) {
                            n = e[r];
                            if (n) {
                                var o = n.parentNode;
                                e[r] = o.nodeName.toLowerCase() === t ? o : false
                            }
                        }
                    } else {
                        for (; r < a; r++) {
                            n = e[r];
                            if (n) {
                                e[r] = i ? n.parentNode : n.parentNode === t
                            }
                        }
                        if (i) {
                            d.filter(t, e, true)
                        }
                    }
                }, "": function(e, t, n) {
                    var i, a = r++, o = N;
                    if (typeof t === "string" && !c.test(t)) {
                        t = t.toLowerCase();
                        i = t;
                        o = T
                    }
                    o("parentNode", t, a, e, i, n)
                }, "~": function(e, t, n) {
                    var i, a = r++, o = N;
                    if (typeof t === "string" && !c.test(t)) {
                        t = t.toLowerCase();
                        i = t;
                        o = T
                    }
                    o("previousSibling", t, a, e, i, n)
                }}, find: {ID: function(e, t, n) {
                    if (typeof t.getElementById !== "undefined" && !n) {
                        var i = t.getElementById(e[1]);
                        return i && i.parentNode ? [i] : []
                    }
                }, NAME: function(e, t) {
                    if (typeof t.getElementsByName !== "undefined") {
                        var n = [], i = t.getElementsByName(e[1]);
                        for (var r = 0, a = i.length; r < a; r++) {
                            if (i[r].getAttribute("name") === e[1]) {
                                n.push(i[r])
                            }
                        }
                        return n.length === 0 ? null : n
                    }
                }, TAG: function(e, t) {
                    if (typeof t.getElementsByTagName !== "undefined") {
                        return t.getElementsByTagName(e[1])
                    }
                }}, preFilter: {CLASS: function(e, t, n, i, r, a) {
                    e = " " + e[1].replace(f, "") + " ";
                    if (a) {
                        return e
                    }
                    for (var o = 0, s; (s = t[o]) != null; o++) {
                        if (s) {
                            if (r ^ (s.className && (" " + s.className + " ").replace(/[\t\n\r]/g, " ").indexOf(e) >= 0)) {
                                if (!n) {
                                    i.push(s)
                                }
                            } else {
                                if (n) {
                                    t[o] = false
                                }
                            }
                        }
                    }
                    return false
                }, ID: function(e) {
                    return e[1].replace(f, "")
                }, TAG: function(e, t) {
                    return e[1].replace(f, "").toLowerCase()
                }, CHILD: function(e) {
                    if (e[1] === "nth") {
                        if (!e[2]) {
                            d.error(e[0])
                        }
                        e[2] = e[2].replace(/^\+|\s*/g, "");
                        var t = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2] === "even" && "2n" || e[2] === "odd" && "2n+1" || !/\D/.test(e[2]) && "0n+" + e[2] || e[2]);
                        e[2] = t[1] + (t[2] || 1) - 0;
                        e[3] = t[3] - 0
                    } else {
                        if (e[2]) {
                            d.error(e[0])
                        }
                    }
                    e[0] = r++;
                    return e
                }, ATTR: function(e, t, n, i, r, a) {
                    var o = e[1] = e[1].replace(f, "");
                    if (!a && h.attrMap[o]) {
                        e[1] = h.attrMap[o]
                    }
                    e[4] = (e[4] || e[5] || "").replace(f, "");
                    if (e[2] === "~=") {
                        e[4] = " " + e[4] + " "
                    }
                    return e
                }, PSEUDO: function(t, n, i, r, a) {
                    if (t[1] === "not") {
                        if ((e.exec(t[3]) || "").length > 1 || /^\w/.test(t[3])) {
                            t[3] = d(t[3], null, null, n)
                        } else {
                            var o = d.filter(t[3], n, i, true ^ a);
                            if (!i) {
                                r.push.apply(r, o)
                            }
                            return false
                        }
                    } else {
                        if (h.match.POS.test(t[0]) || h.match.CHILD.test(t[0])) {
                            return true
                        }
                    }
                    return t
                }, POS: function(e) {
                    e.unshift(true);
                    return e
                }}, filters: {enabled: function(e) {
                    return e.disabled === false && e.type !== "hidden"
                }, disabled: function(e) {
                    return e.disabled === true
                }, checked: function(e) {
                    return e.checked === true
                }, selected: function(e) {
                    if (e.parentNode) {
                        e.parentNode.selectedIndex
                    }
                    return e.selected === true
                }, parent: function(e) {
                    return!!e.firstChild
                }, empty: function(e) {
                    return!e.firstChild
                }, has: function(e, t, n) {
                    return!!d(n[3], e).length
                }, header: function(e) {
                    return/h\d/i.test(e.nodeName)
                }, text: function(e) {
                    var t = e.getAttribute("type"), n = e.type;
                    return e.nodeName.toLowerCase() === "input" && "text" === n && (t === n || t === null)
                }, radio: function(e) {
                    return e.nodeName.toLowerCase() === "input" && "radio" === e.type
                }, checkbox: function(e) {
                    return e.nodeName.toLowerCase() === "input" && "checkbox" === e.type
                }, file: function(e) {
                    return e.nodeName.toLowerCase() === "input" && "file" === e.type
                }, password: function(e) {
                    return e.nodeName.toLowerCase() === "input" && "password" === e.type
                }, submit: function(e) {
                    var t = e.nodeName.toLowerCase();
                    return(t === "input" || t === "button") && "submit" === e.type
                }, image: function(e) {
                    return e.nodeName.toLowerCase() === "input" && "image" === e.type
                }, reset: function(e) {
                    var t = e.nodeName.toLowerCase();
                    return(t === "input" || t === "button") && "reset" === e.type
                }, button: function(e) {
                    var t = e.nodeName.toLowerCase();
                    return t === "input" && "button" === e.type || t === "button"
                }, input: function(e) {
                    return/input|select|textarea|button/i.test(e.nodeName)
                }, focus: function(e) {
                    return e === e.ownerDocument.activeElement
                }}, setFilters: {first: function(e, t) {
                    return t === 0
                }, last: function(e, t, n, i) {
                    return t === i.length - 1
                }, even: function(e, t) {
                    return t % 2 === 0
                }, odd: function(e, t) {
                    return t % 2 === 1
                }, lt: function(e, t, n) {
                    return t < n[3] - 0
                }, gt: function(e, t, n) {
                    return t > n[3] - 0
                }, nth: function(e, t, n) {
                    return n[3] - 0 === t
                }, eq: function(e, t, n) {
                    return n[3] - 0 === t
                }}, filter: {PSEUDO: function(e, t, n, i) {
                    var r = t[1], a = h.filters[r];
                    if (a) {
                        return a(e, n, t, i)
                    } else {
                        if (r === "contains") {
                            return(e.textContent || e.innerText || p([e]) || "").indexOf(t[3]) >= 0
                        } else {
                            if (r === "not") {
                                var o = t[3];
                                for (var s = 0, l = o.length; s < l; s++) {
                                    if (o[s] === e) {
                                        return false
                                    }
                                }
                                return true
                            } else {
                                d.error(r)
                            }
                        }
                    }
                }, CHILD: function(e, t) {
                    var n, r, a, o, s, l, f, u = t[1], c = e;
                    switch (u) {
                        case"only":
                        case"first":
                            while (c = c.previousSibling) {
                                if (c.nodeType === 1) {
                                    return false
                                }
                            }
                            if (u === "first") {
                                return true
                            }
                            c = e;
                        case"last":
                            while (c = c.nextSibling) {
                                if (c.nodeType === 1) {
                                    return false
                                }
                            }
                            return true;
                        case"nth":
                            n = t[2];
                            r = t[3];
                            if (n === 1 && r === 0) {
                                return true
                            }
                            a = t[0];
                            o = e.parentNode;
                            if (o && (o[i] !== a || !e.nodeIndex)) {
                                l = 0;
                                for (c = o.firstChild; c; c = c.nextSibling) {
                                    if (c.nodeType === 1) {
                                        c.nodeIndex = ++l
                                    }
                                }
                                o[i] = a
                            }
                            f = e.nodeIndex - r;
                            if (n === 0) {
                                return f === 0
                            } else {
                                return f % n === 0 && f / n >= 0
                            }
                        }
                }, ID: function(e, t) {
                    return e.nodeType === 1 && e.getAttribute("id") === t
                }, TAG: function(e, t) {
                    return t === "*" && e.nodeType === 1 || !!e.nodeName && e.nodeName.toLowerCase() === t
                }, CLASS: function(e, t) {
                    return(" " + (e.className || e.getAttribute("class")) + " ").indexOf(t) > -1
                }, ATTR: function(e, t) {
                    var n = t[1], i = d.attr ? d.attr(e, n) : h.attrHandle[n] ? h.attrHandle[n](e) : e[n] != null ? e[n] : e.getAttribute(n), r = i + "", a = t[2], o = t[4];
                    return i == null ? a === "!=" : !a && d.attr ? i != null : a === "=" ? r === o : a === "*=" ? r.indexOf(o) >= 0 : a === "~=" ? (" " + r + " ").indexOf(o) >= 0 : !o ? r && i !== false : a === "!=" ? r !== o : a === "^=" ? r.indexOf(o) === 0 : a === "$=" ? r.substr(r.length - o.length) === o : a === "|=" ? r === o || r.substr(0, o.length + 1) === o + "-" : false
                }, POS: function(e, t, n, i) {
                    var r = t[2], a = h.setFilters[r];
                    if (a) {
                        return a(e, n, t, i)
                    }
                }}};
        var m = h.match.POS, g = function(e, t) {
            return"\\" + (t - 0 + 1)
        };
        for (var y in h.match) {
            h.match[y] = new RegExp(h.match[y].source + /(?![^\[]*\])(?![^\(]*\))/.source);
            h.leftMatch[y] = new RegExp(/(^(?:.|\r|\n)*?)/.source + h.match[y].source.replace(/\\(\d+)/g, g))
        }
        var v = function(e, t) {
            e = Array.prototype.slice.call(e, 0);
            if (t) {
                t.push.apply(t, e);
                return t
            }
            return e
        };
        try {
            Array.prototype.slice.call(n.documentElement.childNodes, 0)[0].nodeType
        } catch (b) {
            v = function(e, t) {
                var n = 0, i = t || [];
                if (o.call(e) === "[object Array]") {
                    Array.prototype.push.apply(i, e)
                } else {
                    if (typeof e.length === "number") {
                        for (var r = e.length; n < r; n++) {
                            i.push(e[n])
                        }
                    } else {
                        for (; e[n]; n++) {
                            i.push(e[n])
                        }
                    }
                }
                return i
            }
        }
        var x, w;
        if (n.documentElement.compareDocumentPosition) {
            x = function(e, t) {
                if (e === t) {
                    s = true;
                    return 0
                }
                if (!e.compareDocumentPosition || !t.compareDocumentPosition) {
                    return e.compareDocumentPosition ? -1 : 1
                }
                return e.compareDocumentPosition(t) & 4 ? -1 : 1
            }
        } else {
            x = function(e, t) {
                if (e === t) {
                    s = true;
                    return 0
                } else {
                    if (e.sourceIndex && t.sourceIndex) {
                        return e.sourceIndex - t.sourceIndex
                    }
                }
                var n, i, r = [], a = [], o = e.parentNode, l = t.parentNode, f = o;
                if (o === l) {
                    return w(e, t)
                } else {
                    if (!o) {
                        return-1
                    } else {
                        if (!l) {
                            return 1
                        }
                    }
                }
                while (f) {
                    r.unshift(f);
                    f = f.parentNode
                }
                f = l;
                while (f) {
                    a.unshift(f);
                    f = f.parentNode
                }
                n = r.length;
                i = a.length;
                for (var u = 0; u < n && u < i; u++) {
                    if (r[u] !== a[u]) {
                        return w(r[u], a[u])
                    }
                }
                return u === n ? w(e, a[u], -1) : w(r[u], t, 1)
            };
            w = function(e, t, n) {
                if (e === t) {
                    return n
                }
                var i = e.nextSibling;
                while (i) {
                    if (i === t) {
                        return-1
                    }
                    i = i.nextSibling
                }
                return 1
            }
        }
        !function() {
            var e = n.createElement("div"), i = "script" + (new Date).getTime(), r = n.documentElement;
            e.innerHTML = "<a name='" + i + "'/>";
            r.insertBefore(e, r.firstChild);
            if (n.getElementById(i)) {
                h.find.ID = function(e, n, i) {
                    if (typeof n.getElementById !== "undefined" && !i) {
                        var r = n.getElementById(e[1]);
                        return r ? r.id === e[1] || typeof r.getAttributeNode !== "undefined" && r.getAttributeNode("id").nodeValue === e[1] ? [r] : t : []
                    }
                };
                h.filter.ID = function(e, t) {
                    var n = typeof e.getAttributeNode !== "undefined" && e.getAttributeNode("id");
                    return e.nodeType === 1 && n && n.nodeValue === t
                }
            }
            r.removeChild(e);
            r = e = null
        }();
        !function() {
            var e = n.createElement("div");
            e.appendChild(n.createComment(""));
            if (e.getElementsByTagName("*").length > 0) {
                h.find.TAG = function(e, t) {
                    var n = t.getElementsByTagName(e[1]);
                    if (e[1] === "*") {
                        var i = [];
                        for (var r = 0; n[r]; r++) {
                            if (n[r].nodeType === 1) {
                                i.push(n[r])
                            }
                        }
                        n = i
                    }
                    return n
                }
            }
            e.innerHTML = "<a href='#'></a>";
            if (e.firstChild && typeof e.firstChild.getAttribute !== "undefined" && e.firstChild.getAttribute("href") !== "#") {
                h.attrHandle.href = function(e) {
                    return e.getAttribute("href", 2)
                }
            }
            e = null
        }();
        if (n.querySelectorAll) {
            !function() {
                var e = d, t = n.createElement("div"), i = "__sizzle__";
                t.innerHTML = "<p class='TEST'></p>";
                if (t.querySelectorAll && t.querySelectorAll(".TEST").length === 0) {
                    return
                }
                d = function(t, r, a, o) {
                    r = r || n;
                    if (!o && !d.isXML(r)) {
                        var s = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(t);
                        if (s && (r.nodeType === 1 || r.nodeType === 9)) {
                            if (s[1]) {
                                return v(r.getElementsByTagName(t), a)
                            } else {
                                if (s[2] && h.find.CLASS && r.getElementsByClassName) {
                                    return v(r.getElementsByClassName(s[2]), a)
                                }
                            }
                        }
                        if (r.nodeType === 9) {
                            if (t === "body" && r.body) {
                                return v([r.body], a)
                            } else {
                                if (s && s[3]) {
                                    var l = r.getElementById(s[3]);
                                    if (l && l.parentNode) {
                                        if (l.id === s[3]) {
                                            return v([l], a)
                                        }
                                    } else {
                                        return v([], a)
                                    }
                                }
                            }
                            try {
                                return v(r.querySelectorAll(t), a)
                            } catch (f) {
                            }
                        } else {
                            if (r.nodeType === 1 && r.nodeName.toLowerCase() !== "object") {
                                var u = r, c = r.getAttribute("id"), p = c || i, m = r.parentNode, g = /^\s*[+~]/.test(t);
                                if (!c) {
                                    r.setAttribute("id", p)
                                } else {
                                    p = p.replace(/'/g, "\\$&")
                                }
                                if (g && m) {
                                    r = r.parentNode
                                }
                                try {
                                    if (!g || m) {
                                        return v(r.querySelectorAll("[id='" + p + "'] " + t), a)
                                    }
                                } catch (y) {
                                } finally {
                                    if (!c) {
                                        u.removeAttribute("id")
                                    }
                                }
                            }
                        }
                    }
                    return e(t, r, a, o)
                };
                for (var r in e) {
                    d[r] = e[r]
                }
                t = null
            }()
        }
        !function() {
            var e = n.documentElement, t = e.matchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.msMatchesSelector;
            if (t) {
                var i = !t.call(n.createElement("div"), "div"), r = false;
                try {
                    t.call(n.documentElement, "[test!='']:sizzle")
                } catch (a) {
                    r = true
                }
                d.matchesSelector = function(e, n) {
                    n = n.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
                    if (!d.isXML(e)) {
                        try {
                            if (r || !h.match.PSEUDO.test(n) && !/!=/.test(n)) {
                                var a = t.call(e, n);
                                if (a || !i || e.document && e.document.nodeType !== 11) {
                                    return a
                                }
                            }
                        } catch (o) {
                        }
                    }
                    return d(n, null, null, [e]).length > 0
                }
            }
        }();
        !function() {
            var e = n.createElement("div");
            e.innerHTML = "<div class='test e'></div><div class='test'></div>";
            if (!e.getElementsByClassName || e.getElementsByClassName("e").length === 0) {
                return
            }
            e.lastChild.className = "e";
            if (e.getElementsByClassName("e").length === 1) {
                return
            }
            h.order.splice(1, 0, "CLASS");
            h.find.CLASS = function(e, t, n) {
                if (typeof t.getElementsByClassName !== "undefined" && !n) {
                    return t.getElementsByClassName(e[1])
                }
            };
            e = null
        }();
        function T(e, t, n, r, a, o) {
            for (var s = 0, l = r.length; s < l; s++) {
                var f = r[s];
                if (f) {
                    var u = false;
                    f = f[e];
                    while (f) {
                        if (f[i] === n) {
                            u = r[f.sizset];
                            break
                        }
                        if (f.nodeType === 1 && !o) {
                            f[i] = n;
                            f.sizset = s
                        }
                        if (f.nodeName.toLowerCase() === t) {
                            u = f;
                            break
                        }
                        f = f[e]
                    }
                    r[s] = u
                }
            }
        }
        function N(e, t, n, r, a, o) {
            for (var s = 0, l = r.length; s < l; s++) {
                var f = r[s];
                if (f) {
                    var u = false;
                    f = f[e];
                    while (f) {
                        if (f[i] === n) {
                            u = r[f.sizset];
                            break
                        }
                        if (f.nodeType === 1) {
                            if (!o) {
                                f[i] = n;
                                f.sizset = s
                            }
                            if (typeof t !== "string") {
                                if (f === t) {
                                    u = true;
                                    break
                                }
                            } else {
                                if (d.filter(t, [f]).length > 0) {
                                    u = f;
                                    break
                                }
                            }
                        }
                        f = f[e]
                    }
                    r[s] = u
                }
            }
        }
        if (n.documentElement.contains) {
            d.contains = function(e, t) {
                return e !== t && (e.contains ? e.contains(t) : true)
            }
        } else {
            if (n.documentElement.compareDocumentPosition) {
                d.contains = function(e, t) {
                    return!!(e.compareDocumentPosition(t) & 16)
                }
            } else {
                d.contains = function() {
                    return false
                }
            }
        }
        d.isXML = function(e) {
            var t = (e ? e.ownerDocument || e : 0).documentElement;
            return t ? t.nodeName !== "HTML" : false
        };
        var C = function(e, t, n) {
            var i, r = [], a = "", o = t.nodeType ? [t] : t;
            while (i = h.match.PSEUDO.exec(e)) {
                a += i[0];
                e = e.replace(h.match.PSEUDO, "")
            }
            e = h.relative[e] ? e + "*" : e;
            for (var s = 0, l = o.length; s < l; s++) {
                d(e, o[s], r, n)
            }
            return d.filter(a, r)
        };
        d.attr = a.attr;
        d.selectors.attrMap = {};
        a.find = d;
        a.expr = d.selectors;
        a.expr[":"] = a.expr.filters;
        a.unique = d.uniqueSort;
        a.text = d.getText;
        a.isXMLDoc = d.isXML;
        a.contains = d.contains
    }();
    var B = /Until$/, P = /^(?:parents|prevUntil|prevAll)/, q = /,/, W = /^.[^:#\[\.,]*$/, I = Array.prototype.slice, $ = a.expr.match.POS, R = {children: true, contents: true, next: true, prev: true};
    a.fn.extend({find: function(e) {
            var t = this, n, i;
            if (typeof e !== "string") {
                return a(e).filter(function() {
                    for (n = 0, i = t.length; n < i; n++) {
                        if (a.contains(t[n], this)) {
                            return true
                        }
                    }
                })
            }
            var r = this.pushStack("", "find", e), o, s, l;
            for (n = 0, i = this.length; n < i; n++) {
                o = r.length;
                a.find(e, this[n], r);
                if (n > 0) {
                    for (s = o; s < r.length; s++) {
                        for (l = 0; l < o; l++) {
                            if (r[l] === r[s]) {
                                r.splice(s--, 1);
                                break
                            }
                        }
                    }
                }
            }
            return r
        }, has: function(e) {
            var t = a(e);
            return this.filter(function() {
                for (var e = 0, n = t.length; e < n; e++) {
                    if (a.contains(this, t[e])) {
                        return true
                    }
                }
            })
        }, not: function(e) {
            return this.pushStack(z(this, e, false), "not", e)
        }, filter: function(e) {
            return this.pushStack(z(this, e, true), "filter", e)
        }, is: function(e) {
            return!!e && (typeof e === "string" ? $.test(e) ? a(e, this.context).index(this[0]) >= 0 : a.filter(e, this).length > 0 : this.filter(e).length > 0)
        }, closest: function(e, t) {
            var n = [], i, r, o = this[0];
            if (a.isArray(e)) {
                var s = 1;
                while (o && o.ownerDocument && o !== t) {
                    for (i = 0; i < e.length; i++) {
                        if (a(o).is(e[i])) {
                            n.push({selector: e[i], elem: o, level: s})
                        }
                    }
                    o = o.parentNode;
                    s++
                }
                return n
            }
            var l = $.test(e) || typeof e !== "string" ? a(e, t || this.context) : 0;
            for (i = 0, r = this.length; i < r; i++) {
                o = this[i];
                while (o) {
                    if (l ? l.index(o) > -1 : a.find.matchesSelector(o, e)) {
                        n.push(o);
                        break
                    } else {
                        o = o.parentNode;
                        if (!o || !o.ownerDocument || o === t || o.nodeType === 11) {
                            break
                        }
                    }
                }
            }
            n = n.length > 1 ? a.unique(n) : n;
            return this.pushStack(n, "closest", e)
        }, index: function(e) {
            if (!e) {
                return this[0] && this[0].parentNode ? this.prevAll().length : -1
            }
            if (typeof e === "string") {
                return a.inArray(this[0], a(e))
            }
            return a.inArray(e.jquery ? e[0] : e, this)
        }, add: function(e, t) {
            var n = typeof e === "string" ? a(e, t) : a.makeArray(e && e.nodeType ? [e] : e), i = a.merge(this.get(), n);
            return this.pushStack(X(n[0]) || X(i[0]) ? i : a.unique(i))
        }, andSelf: function() {
            return this.add(this.prevObject)
        }});
    function X(e) {
        return!e || !e.parentNode || e.parentNode.nodeType === 11
    }
    a.each({parent: function(e) {
            var t = e.parentNode;
            return t && t.nodeType !== 11 ? t : null
        }, parents: function(e) {
            return a.dir(e, "parentNode")
        }, parentsUntil: function(e, t, n) {
            return a.dir(e, "parentNode", n)
        }, next: function(e) {
            return a.nth(e, 2, "nextSibling")
        }, prev: function(e) {
            return a.nth(e, 2, "previousSibling")
        }, nextAll: function(e) {
            return a.dir(e, "nextSibling")
        }, prevAll: function(e) {
            return a.dir(e, "previousSibling")
        }, nextUntil: function(e, t, n) {
            return a.dir(e, "nextSibling", n)
        }, prevUntil: function(e, t, n) {
            return a.dir(e, "previousSibling", n)
        }, siblings: function(e) {
            return a.sibling(e.parentNode.firstChild, e)
        }, children: function(e) {
            return a.sibling(e.firstChild)
        }, contents: function(e) {
            return a.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : a.makeArray(e.childNodes)
        }}, function(e, t) {
        a.fn[e] = function(n, i) {
            var r = a.map(this, t, n);
            if (!B.test(e)) {
                i = n
            }
            if (i && typeof i === "string") {
                r = a.filter(i, r)
            }
            r = this.length > 1 && !R[e] ? a.unique(r) : r;
            if ((this.length > 1 || q.test(i)) && P.test(e)) {
                r = r.reverse()
            }
            return this.pushStack(r, e, I.call(arguments).join(","))
        }
    });
    a.extend({filter: function(e, t, n) {
            if (n) {
                e = ":not(" + e + ")"
            }
            return t.length === 1 ? a.find.matchesSelector(t[0], e) ? [t[0]] : [] : a.find.matches(e, t)
        }, dir: function(e, n, i) {
            var r = [], o = e[n];
            while (o && o.nodeType !== 9 && (i === t || o.nodeType !== 1 || !a(o).is(i))) {
                if (o.nodeType === 1) {
                    r.push(o)
                }
                o = o[n]
            }
            return r
        }, nth: function(e, t, n, i) {
            t = t || 1;
            var r = 0;
            for (; e; e = e[n]) {
                if (e.nodeType === 1 && ++r === t) {
                    break
                }
            }
            return e
        }, sibling: function(e, t) {
            var n = [];
            for (; e; e = e.nextSibling) {
                if (e.nodeType === 1 && e !== t) {
                    n.push(e)
                }
            }
            return n
        }});
    function z(e, t, n) {
        t = t || 0;
        if (a.isFunction(t)) {
            return a.grep(e, function(e, i) {
                var r = !!t.call(e, i, e);
                return r === n
            })
        } else {
            if (t.nodeType) {
                return a.grep(e, function(e, i) {
                    return e === t === n
                })
            } else {
                if (typeof t === "string") {
                    var i = a.grep(e, function(e) {
                        return e.nodeType === 1
                    });
                    if (W.test(t)) {
                        return a.filter(t, i, !n)
                    } else {
                        t = a.filter(t, i)
                    }
                }
            }
        }
        return a.grep(e, function(e, i) {
            return a.inArray(e, t) >= 0 === n
        })
    }
    function V(e) {
        var t = U.split("|"), n = e.createDocumentFragment();
        if (n.createElement) {
            while (t.length) {
                n.createElement(t.pop())
            }
        }
        return n
    }
    var U = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", G = / jQuery\d+="(?:\d+|null)"/g, J = /^\s+/, Y = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, Q = /<([\w:]+)/, K = /<tbody/i, Z = /<|&#?\w+;/, et = /<(?:script|style)/i, tt = /<(?:script|object|embed|option|style)/i, nt = new RegExp("<(?:" + U + ")", "i"), it = /checked\s*(?:[^=]|=\s*.checked.)/i, rt = /\/(java|ecma)script/i, at = /^\s*<!(?:\[CDATA\[|\-\-)/, ot = {option: [1, "<select multiple='multiple'>", "</select>"], legend: [1, "<fieldset>", "</fieldset>"], thead: [1, "<table>", "</table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], area: [1, "<map>", "</map>"], _default: [0, "", ""]}, st = V(n);
    ot.optgroup = ot.option;
    ot.tbody = ot.tfoot = ot.colgroup = ot.caption = ot.thead;
    ot.th = ot.td;
    if (!a.support.htmlSerialize) {
        ot._default = [1, "div<div>", "</div>"]
    }
    a.fn.extend({text: function(e) {
            if (a.isFunction(e)) {
                return this.each(function(t) {
                    var n = a(this);
                    n.text(e.call(this, t, n.text()))
                })
            }
            if (typeof e !== "object" && e !== t) {
                return this.empty().append((this[0] && this[0].ownerDocument || n).createTextNode(e))
            }
            return a.text(this)
        }, wrapAll: function(e) {
            if (a.isFunction(e)) {
                return this.each(function(t) {
                    a(this).wrapAll(e.call(this, t))
                })
            }
            if (this[0]) {
                var t = a(e, this[0].ownerDocument).eq(0).clone(true);
                if (this[0].parentNode) {
                    t.insertBefore(this[0])
                }
                t.map(function() {
                    var e = this;
                    while (e.firstChild && e.firstChild.nodeType === 1) {
                        e = e.firstChild
                    }
                    return e
                }).append(this)
            }
            return this
        }, wrapInner: function(e) {
            if (a.isFunction(e)) {
                return this.each(function(t) {
                    a(this).wrapInner(e.call(this, t))
                })
            }
            return this.each(function() {
                var t = a(this), n = t.contents();
                if (n.length) {
                    n.wrapAll(e)
                } else {
                    t.append(e)
                }
            })
        }, wrap: function(e) {
            var t = a.isFunction(e);
            return this.each(function(n) {
                a(this).wrapAll(t ? e.call(this, n) : e)
            })
        }, unwrap: function() {
            return this.parent().each(function() {
                if (!a.nodeName(this, "body")) {
                    a(this).replaceWith(this.childNodes)
                }
            }).end()
        }, append: function() {
            return this.domManip(arguments, true, function(e) {
                if (this.nodeType === 1) {
                    this.appendChild(e)
                }
            })
        }, prepend: function() {
            return this.domManip(arguments, true, function(e) {
                if (this.nodeType === 1) {
                    this.insertBefore(e, this.firstChild)
                }
            })
        }, before: function() {
            if (this[0] && this[0].parentNode) {
                return this.domManip(arguments, false, function(e) {
                    this.parentNode.insertBefore(e, this)
                })
            } else {
                if (arguments.length) {
                    var e = a.clean(arguments);
                    e.push.apply(e, this.toArray());
                    return this.pushStack(e, "before", arguments)
                }
            }
        }, after: function() {
            if (this[0] && this[0].parentNode) {
                return this.domManip(arguments, false, function(e) {
                    this.parentNode.insertBefore(e, this.nextSibling)
                })
            } else {
                if (arguments.length) {
                    var e = this.pushStack(this, "after", arguments);
                    e.push.apply(e, a.clean(arguments));
                    return e
                }
            }
        }, remove: function(e, t) {
            for (var n = 0, i; (i = this[n]) != null; n++) {
                if (!e || a.filter(e, [i]).length) {
                    if (!t && i.nodeType === 1) {
                        a.cleanData(i.getElementsByTagName("*"));
                        a.cleanData([i])
                    }
                    if (i.parentNode) {
                        i.parentNode.removeChild(i)
                    }
                }
            }
            return this
        }, empty: function() {
            for (var e = 0, t; (t = this[e]) != null; e++) {
                if (t.nodeType === 1) {
                    a.cleanData(t.getElementsByTagName("*"))
                }
                while (t.firstChild) {
                    t.removeChild(t.firstChild)
                }
            }
            return this
        }, clone: function(e, t) {
            e = e == null ? false : e;
            t = t == null ? e : t;
            return this.map(function() {
                return a.clone(this, e, t)
            })
        }, html: function(e) {
            if (e === t) {
                return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(G, "") : null
            } else {
                if (typeof e === "string" && !et.test(e) && (a.support.leadingWhitespace || !J.test(e)) && !ot[(Q.exec(e) || ["", ""])[1].toLowerCase()]) {
                    e = e.replace(Y, "<$1></$2>");
                    try {
                        for (var n = 0, i = this.length; n < i; n++) {
                            if (this[n].nodeType === 1) {
                                a.cleanData(this[n].getElementsByTagName("*"));
                                this[n].innerHTML = e
                            }
                        }
                    } catch (r) {
                        this.empty().append(e)
                    }
                } else {
                    if (a.isFunction(e)) {
                        this.each(function(t) {
                            var n = a(this);
                            n.html(e.call(this, t, n.html()))
                        })
                    } else {
                        this.empty().append(e)
                    }
                }
            }
            return this
        }, replaceWith: function(e) {
            if (this[0] && this[0].parentNode) {
                if (a.isFunction(e)) {
                    return this.each(function(t) {
                        var n = a(this), i = n.html();
                        n.replaceWith(e.call(this, t, i))
                    })
                }
                if (typeof e !== "string") {
                    e = a(e).detach()
                }
                return this.each(function() {
                    var t = this.nextSibling, n = this.parentNode;
                    a(this).remove();
                    if (t) {
                        a(t).before(e)
                    } else {
                        a(n).append(e)
                    }
                })
            } else {
                return this.length ? this.pushStack(a(a.isFunction(e) ? e() : e), "replaceWith", e) : this
            }
        }, detach: function(e) {
            return this.remove(e, true)
        }, domManip: function(e, n, i) {
            var r, o, s, l, f = e[0], u = [];
            if (!a.support.checkClone && arguments.length === 3 && typeof f === "string" && it.test(f)) {
                return this.each(function() {
                    a(this).domManip(e, n, i, true)
                })
            }
            if (a.isFunction(f)) {
                return this.each(function(r) {
                    var o = a(this);
                    e[0] = f.call(this, r, n ? o.html() : t);
                    o.domManip(e, n, i)
                })
            }
            if (this[0]) {
                l = f && f.parentNode;
                if (a.support.parentNode && l && l.nodeType === 11 && l.childNodes.length === this.length) {
                    r = {fragment: l}
                } else {
                    r = a.buildFragment(e, this, u)
                }
                s = r.fragment;
                if (s.childNodes.length === 1) {
                    o = s = s.firstChild
                } else {
                    o = s.firstChild
                }
                if (o) {
                    n = n && a.nodeName(o, "tr");
                    for (var c = 0, d = this.length, p = d - 1; c < d; c++) {
                        i.call(n ? lt(this[c], o) : this[c], r.cacheable || d > 1 && c < p ? a.clone(s, true, true) : s)
                    }
                }
                if (u.length) {
                    a.each(u, mt)
                }
            }
            return this
        }});
    function lt(e, t) {
        return a.nodeName(e, "table") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
    }
    function ft(e, t) {
        if (t.nodeType !== 1 || !a.hasData(e)) {
            return
        }
        var n, i, r, o = a._data(e), s = a._data(t, o), l = o.events;
        if (l) {
            delete s.handle;
            s.events = {};
            for (n in l) {
                for (i = 0, r = l[n].length; i < r; i++) {
                    a.event.add(t, n + (l[n][i].namespace ? "." : "") + l[n][i].namespace, l[n][i], l[n][i].data)
                }
            }
        }
        if (s.data) {
            s.data = a.extend({}, s.data)
        }
    }
    function ut(e, t) {
        var n;
        if (t.nodeType !== 1) {
            return
        }
        if (t.clearAttributes) {
            t.clearAttributes()
        }
        if (t.mergeAttributes) {
            t.mergeAttributes(e)
        }
        n = t.nodeName.toLowerCase();
        if (n === "object") {
            t.outerHTML = e.outerHTML
        } else {
            if (n === "input" && (e.type === "checkbox" || e.type === "radio")) {
                if (e.checked) {
                    t.defaultChecked = t.checked = e.checked
                }
                if (t.value !== e.value) {
                    t.value = e.value
                }
            } else {
                if (n === "option") {
                    t.selected = e.defaultSelected
                } else {
                    if (n === "input" || n === "textarea") {
                        t.defaultValue = e.defaultValue
                    }
                }
            }
        }
        t.removeAttribute(a.expando)
    }
    a.buildFragment = function(e, t, i) {
        var r, o, s, l, f = e[0];
        if (t && t[0]) {
            l = t[0].ownerDocument || t[0]
        }
        if (!l.createDocumentFragment) {
            l = n
        }
        if (e.length === 1 && typeof f === "string" && f.length < 512 && l === n && f.charAt(0) === "<" && !tt.test(f) && (a.support.checkClone || !it.test(f)) && (a.support.html5Clone || !nt.test(f))) {
            o = true;
            s = a.fragments[f];
            if (s && s !== 1) {
                r = s
            }
        }
        if (!r) {
            r = l.createDocumentFragment();
            a.clean(e, l, r, i)
        }
        if (o) {
            a.fragments[f] = s ? r : 1
        }
        return{fragment: r, cacheable: o}
    };
    a.fragments = {};
    a.each({appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith"}, function(e, t) {
        a.fn[e] = function(n) {
            var i = [], r = a(n), o = this.length === 1 && this[0].parentNode;
            if (o && o.nodeType === 11 && o.childNodes.length === 1 && r.length === 1) {
                r[t](this[0]);
                return this
            } else {
                for (var s = 0, l = r.length; s < l; s++) {
                    var f = (s > 0 ? this.clone(true) : this).get();
                    a(r[s])[t](f);
                    i = i.concat(f)
                }
                return this.pushStack(i, e, r.selector)
            }
        }
    });
    function ct(e) {
        if (typeof e.getElementsByTagName !== "undefined") {
            return e.getElementsByTagName("*")
        } else {
            if (typeof e.querySelectorAll !== "undefined") {
                return e.querySelectorAll("*")
            } else {
                return[]
            }
        }
    }
    function dt(e) {
        if (e.type === "checkbox" || e.type === "radio") {
            e.defaultChecked = e.checked
        }
    }
    function pt(e) {
        var t = (e.nodeName || "").toLowerCase();
        if (t === "input") {
            dt(e)
        } else {
            if (t !== "script" && typeof e.getElementsByTagName !== "undefined") {
                a.grep(e.getElementsByTagName("input"), dt)
            }
        }
    }
    function ht(e) {
        var t = n.createElement("div");
        st.appendChild(t);
        t.innerHTML = e.outerHTML;
        return t.firstChild
    }
    a.extend({clone: function(e, t, n) {
            var i, r, o, s = a.support.html5Clone || !nt.test("<" + e.nodeName) ? e.cloneNode(true) : ht(e);
            if ((!a.support.noCloneEvent || !a.support.noCloneChecked) && (e.nodeType === 1 || e.nodeType === 11) && !a.isXMLDoc(e)) {
                ut(e, s);
                i = ct(e);
                r = ct(s);
                for (o = 0; i[o]; ++o) {
                    if (r[o]) {
                        ut(i[o], r[o])
                    }
                }
            }
            if (t) {
                ft(e, s);
                if (n) {
                    i = ct(e);
                    r = ct(s);
                    for (o = 0; i[o]; ++o) {
                        ft(i[o], r[o])
                    }
                }
            }
            i = r = null;
            return s
        }, clean: function(e, t, i, r) {
            var o;
            t = t || n;
            if (typeof t.createElement === "undefined") {
                t = t.ownerDocument || t[0] && t[0].ownerDocument || n
            }
            var s = [], l;
            for (var f = 0, u; (u = e[f]) != null; f++) {
                if (typeof u === "number") {
                    u += ""
                }
                if (!u) {
                    continue
                }
                if (typeof u === "string") {
                    if (!Z.test(u)) {
                        u = t.createTextNode(u)
                    } else {
                        u = u.replace(Y, "<$1></$2>");
                        var c = (Q.exec(u) || ["", ""])[1].toLowerCase(), d = ot[c] || ot._default, p = d[0], h = t.createElement("div");
                        if (t === n) {
                            st.appendChild(h)
                        } else {
                            V(t).appendChild(h)
                        }
                        h.innerHTML = d[1] + u + d[2];
                        while (p--) {
                            h = h.lastChild
                        }
                        if (!a.support.tbody) {
                            var m = K.test(u), g = c === "table" && !m ? h.firstChild && h.firstChild.childNodes : d[1] === "<table>" && !m ? h.childNodes : [];
                            for (l = g.length - 1; l >= 0; --l) {
                                if (a.nodeName(g[l], "tbody") && !g[l].childNodes.length) {
                                    g[l].parentNode.removeChild(g[l])
                                }
                            }
                        }
                        if (!a.support.leadingWhitespace && J.test(u)) {
                            h.insertBefore(t.createTextNode(J.exec(u)[0]), h.firstChild)
                        }
                        u = h.childNodes
                    }
                }
                var y;
                if (!a.support.appendChecked) {
                    if (u[0] && typeof (y = u.length) === "number") {
                        for (l = 0; l < y; l++) {
                            pt(u[l])
                        }
                    } else {
                        pt(u)
                    }
                }
                if (u.nodeType) {
                    s.push(u)
                } else {
                    s = a.merge(s, u)
                }
            }
            if (i) {
                o = function(e) {
                    return!e.type || rt.test(e.type)
                };
                for (f = 0; s[f]; f++) {
                    if (r && a.nodeName(s[f], "script") && (!s[f].type || s[f].type.toLowerCase() === "text/javascript")) {
                        r.push(s[f].parentNode ? s[f].parentNode.removeChild(s[f]) : s[f])
                    } else {
                        if (s[f].nodeType === 1) {
                            var v = a.grep(s[f].getElementsByTagName("script"), o);
                            s.splice.apply(s, [f + 1, 0].concat(v))
                        }
                        i.appendChild(s[f])
                    }
                }
            }
            return s
        }, cleanData: function(e) {
            var t, n, i = a.cache, r = a.event.special, o = a.support.deleteExpando;
            for (var s = 0, l; (l = e[s]) != null; s++) {
                if (l.nodeName && a.noData[l.nodeName.toLowerCase()]) {
                    continue
                }
                n = l[a.expando];
                if (n) {
                    t = i[n];
                    if (t && t.events) {
                        for (var f in t.events) {
                            if (r[f]) {
                                a.event.remove(l, f)
                            } else {
                                a.removeEvent(l, f, t.handle)
                            }
                        }
                        if (t.handle) {
                            t.handle.elem = null
                        }
                    }
                    if (o) {
                        delete l[a.expando]
                    } else {
                        if (l.removeAttribute) {
                            l.removeAttribute(a.expando)
                        }
                    }
                    delete i[n]
                }
            }
        }});
    function mt(e, t) {
        if (t.src) {
            a.ajax({url: t.src, async: false, dataType: "script"})
        } else {
            a.globalEval((t.text || t.textContent || t.innerHTML || "").replace(at, "/*$0*/"))
        }
        if (t.parentNode) {
            t.parentNode.removeChild(t)
        }
    }
    var gt = /alpha\([^)]*\)/i, yt = /opacity=([^)]*)/, vt = /([A-Z]|^ms)/g, bt = /^-?\d+(?:px)?$/i, xt = /^-?\d/, wt = /^([\-+])=([\-+.\de]+)/, Tt = {position: "absolute", visibility: "hidden", display: "block"}, Nt = ["Left", "Right"], Ct = ["Top", "Bottom"], Et, kt, St;
    a.fn.css = function(e, n) {
        if (arguments.length === 2 && n === t) {
            return this
        }
        return a.access(this, e, n, true, function(e, n, i) {
            return i !== t ? a.style(e, n, i) : a.css(e, n)
        })
    };
    a.extend({cssHooks: {opacity: {get: function(e, t) {
                    if (t) {
                        var n = Et(e, "opacity", "opacity");
                        return n === "" ? "1" : n
                    } else {
                        return e.style.opacity
                    }
                }}}, cssNumber: {fillOpacity: true, fontWeight: true, lineHeight: true, opacity: true, orphans: true, widows: true, zIndex: true, zoom: true}, cssProps: {"float": a.support.cssFloat ? "cssFloat" : "styleFloat"}, style: function(e, n, i, r) {
            if (!e || e.nodeType === 3 || e.nodeType === 8 || !e.style) {
                return
            }
            var o, s, l = a.camelCase(n), f = e.style, u = a.cssHooks[l];
            n = a.cssProps[l] || l;
            if (i !== t) {
                s = typeof i;
                if (s === "string" && (o = wt.exec(i))) {
                    i = +(o[1] + 1) * +o[2] + parseFloat(a.css(e, n));
                    s = "number"
                }
                if (i == null || s === "number" && isNaN(i)) {
                    return
                }
                if (s === "number" && !a.cssNumber[l]) {
                    i += "px"
                }
                if (!u || !("set"in u) || (i = u.set(e, i)) !== t) {
                    try {
                        f[n] = i
                    } catch (c) {
                    }
                }
            } else {
                if (u && "get"in u && (o = u.get(e, false, r)) !== t) {
                    return o
                }
                return f[n]
            }
        }, css: function(e, n, i) {
            var r, o;
            n = a.camelCase(n);
            o = a.cssHooks[n];
            n = a.cssProps[n] || n;
            if (n === "cssFloat") {
                n = "float"
            }
            if (o && "get"in o && (r = o.get(e, true, i)) !== t) {
                return r
            } else {
                if (Et) {
                    return Et(e, n)
                }
            }
        }, swap: function(e, t, n) {
            var i = {};
            for (var r in t) {
                i[r] = e.style[r];
                e.style[r] = t[r]
            }
            n.call(e);
            for (r in t) {
                e.style[r] = i[r]
            }
        }});
    a.curCSS = a.css;
    a.each(["height", "width"], function(e, t) {
        a.cssHooks[t] = {get: function(e, n, i) {
                var r;
                if (n) {
                    if (e.offsetWidth !== 0) {
                        return At(e, t, i)
                    } else {
                        a.swap(e, Tt, function() {
                            r = At(e, t, i)
                        })
                    }
                    return r
                }
            }, set: function(e, t) {
                if (bt.test(t)) {
                    t = parseFloat(t);
                    if (t >= 0) {
                        return t + "px"
                    }
                } else {
                    return t
                }
            }}
    });
    if (!a.support.opacity) {
        a.cssHooks.opacity = {get: function(e, t) {
                return yt.test((t && e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? parseFloat(RegExp.$1) / 100 + "" : t ? "1" : ""
            }, set: function(e, t) {
                var n = e.style, i = e.currentStyle, r = a.isNumeric(t) ? "alpha(opacity=" + t * 100 + ")" : "", o = i && i.filter || n.filter || "";
                n.zoom = 1;
                if (t >= 1 && a.trim(o.replace(gt, "")) === "") {
                    n.removeAttribute("filter");
                    if (i && !i.filter) {
                        return
                    }
                }
                n.filter = gt.test(o) ? o.replace(gt, r) : o + " " + r
            }}
    }
    a(function() {
        if (!a.support.reliableMarginRight) {
            a.cssHooks.marginRight = {get: function(e, t) {
                    var n;
                    a.swap(e, {display: "inline-block"}, function() {
                        if (t) {
                            n = Et(e, "margin-right", "marginRight")
                        } else {
                            n = e.style.marginRight
                        }
                    });
                    return n
                }}
        }
    });
    if (n.defaultView && n.defaultView.getComputedStyle) {
        kt = function(e, t) {
            var n, i, r;
            t = t.replace(vt, "-$1").toLowerCase();
            if ((i = e.ownerDocument.defaultView) && (r = i.getComputedStyle(e, null))) {
                n = r.getPropertyValue(t);
                if (n === "" && !a.contains(e.ownerDocument.documentElement, e)) {
                    n = a.style(e, t)
                }
            }
            return n
        }
    }
    if (n.documentElement.currentStyle) {
        St = function(e, t) {
            var n, i, r, a = e.currentStyle && e.currentStyle[t], o = e.style;
            if (a === null && o && (r = o[t])) {
                a = r
            }
            if (!bt.test(a) && xt.test(a)) {
                n = o.left;
                i = e.runtimeStyle && e.runtimeStyle.left;
                if (i) {
                    e.runtimeStyle.left = e.currentStyle.left
                }
                o.left = t === "fontSize" ? "1em" : a || 0;
                a = o.pixelLeft + "px";
                o.left = n;
                if (i) {
                    e.runtimeStyle.left = i
                }
            }
            return a === "" ? "auto" : a
        }
    }
    Et = kt || St;
    function At(e, t, n) {
        var i = t === "width" ? e.offsetWidth : e.offsetHeight, r = t === "width" ? Nt : Ct, o = 0, s = r.length;
        if (i > 0) {
            if (n !== "border") {
                for (; o < s; o++) {
                    if (!n) {
                        i -= parseFloat(a.css(e, "padding" + r[o])) || 0
                    }
                    if (n === "margin") {
                        i += parseFloat(a.css(e, n + r[o])) || 0
                    } else {
                        i -= parseFloat(a.css(e, "border" + r[o] + "Width")) || 0
                    }
                }
            }
            return i + "px"
        }
        i = Et(e, t, t);
        if (i < 0 || i == null) {
            i = e.style[t] || 0
        }
        i = parseFloat(i) || 0;
        if (n) {
            for (; o < s; o++) {
                i += parseFloat(a.css(e, "padding" + r[o])) || 0;
                if (n !== "padding") {
                    i += parseFloat(a.css(e, "border" + r[o] + "Width")) || 0
                }
                if (n === "margin") {
                    i += parseFloat(a.css(e, n + r[o])) || 0
                }
            }
        }
        return i + "px"
    }
    if (a.expr && a.expr.filters) {
        a.expr.filters.hidden = function(e) {
            var t = e.offsetWidth, n = e.offsetHeight;
            return t === 0 && n === 0 || !a.support.reliableHiddenOffsets && (e.style && e.style.display || a.css(e, "display")) === "none"
        };
        a.expr.filters.visible = function(e) {
            return!a.expr.filters.hidden(e)
        }
    }
    var Lt = /%20/g, jt = /\[\]$/, Ft = /\r?\n/g, Dt = /#.*$/, Mt = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, Ot = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, _t = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, Ht = /^(?:GET|HEAD)$/, Bt = /^\/\//, Pt = /\?/, qt = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, Wt = /^(?:select|textarea)/i, It = /\s+/, $t = /([?&])_=[^&]*/, Rt = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/, Xt = a.fn.load, zt = {}, Vt = {}, Ut, Gt, Jt = ["*/"] + ["*"];
    try {
        Ut = r.href
    } catch (Yt) {
        Ut = n.createElement("a");
        Ut.href = "";
        Ut = Ut.href
    }
    Gt = Rt.exec(Ut.toLowerCase()) || [];
    function Qt(e) {
        return function(t, n) {
            if (typeof t !== "string") {
                n = t;
                t = "*"
            }
            if (a.isFunction(n)) {
                var i = t.toLowerCase().split(It), r = 0, o = i.length, s, l, f;
                for (; r < o; r++) {
                    s = i[r];
                    f = /^\+/.test(s);
                    if (f) {
                        s = s.substr(1) || "*"
                    }
                    l = e[s] = e[s] || [];
                    l[f ? "unshift" : "push"](n)
                }
            }
        }
    }
    function Kt(e, n, i, r, a, o) {
        a = a || n.dataTypes[0];
        o = o || {};
        o[a] = true;
        var s = e[a], l = 0, f = s ? s.length : 0, u = e === zt, c;
        for (; l < f && (u || !c); l++) {
            c = s[l](n, i, r);
            if (typeof c === "string") {
                if (!u || o[c]) {
                    c = t
                } else {
                    n.dataTypes.unshift(c);
                    c = Kt(e, n, i, r, c, o)
                }
            }
        }
        if ((u || !c) && !o["*"]) {
            c = Kt(e, n, i, r, "*", o)
        }
        return c
    }
    function Zt(e, n) {
        var i, r, o = a.ajaxSettings.flatOptions || {};
        for (i in n) {
            if (n[i] !== t) {
                (o[i] ? e : r || (r = {}))[i] = n[i]
            }
        }
        if (r) {
            a.extend(true, e, r)
        }
    }
    a.fn.extend({load: function(e, n, i) {
            if (typeof e !== "string" && Xt) {
                return Xt.apply(this, arguments)
            } else {
                if (!this.length) {
                    return this
                }
            }
            var r = e.indexOf(" ");
            if (r >= 0) {
                var o = e.slice(r, e.length);
                e = e.slice(0, r)
            }
            var s = "GET";
            if (n) {
                if (a.isFunction(n)) {
                    i = n;
                    n = t
                } else {
                    if (typeof n === "object") {
                        n = a.param(n, a.ajaxSettings.traditional);
                        s = "POST"
                    }
                }
            }
            var l = this;
            a.ajax({url: e, type: s, dataType: "html", data: n, complete: function(e, t, n) {
                    n = e.responseText;
                    if (e.isResolved()) {
                        e.done(function(e) {
                            n = e
                        });
                        l.html(o ? a("<div>").append(n.replace(qt, "")).find(o) : n)
                    }
                    if (i) {
                        l.each(i, [n, t, e])
                    }
                }});
            return this
        }, serialize: function() {
            return a.param(this.serializeArray())
        }, serializeArray: function() {
            return this.map(function() {
                return this.elements ? a.makeArray(this.elements) : this
            }).filter(function() {
                return this.name && !this.disabled && (this.checked || Wt.test(this.nodeName) || Ot.test(this.type))
            }).map(function(e, t) {
                var n = a(this).val();
                return n == null ? null : a.isArray(n) ? a.map(n, function(e, n) {
                    return{name: t.name, value: e.replace(Ft, "\r\n")}
                }) : {name: t.name, value: n.replace(Ft, "\r\n")}
            }).get()
        }});
    a.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(e, t) {
        a.fn[t] = function(e) {
            return this.on(t, e)
        }
    });
    a.each(["get", "post"], function(e, n) {
        a[n] = function(e, i, r, o) {
            if (a.isFunction(i)) {
                o = o || r;
                r = i;
                i = t
            }
            return a.ajax({type: n, url: e, data: i, success: r, dataType: o})
        }
    });
    a.extend({getScript: function(e, n) {
            return a.get(e, t, n, "script")
        }, getJSON: function(e, t, n) {
            return a.get(e, t, n, "json")
        }, ajaxSetup: function(e, t) {
            if (t) {
                Zt(e, a.ajaxSettings)
            } else {
                t = e;
                e = a.ajaxSettings
            }
            Zt(e, t);
            return e
        }, ajaxSettings: {url: Ut, isLocal: _t.test(Gt[1]), global: true, type: "GET", contentType: "application/x-www-form-urlencoded", processData: true, async: true, accepts: {xml: "application/xml, text/xml", html: "text/html", text: "text/plain", json: "application/json, text/javascript", "*": Jt}, contents: {xml: /xml/, html: /html/, json: /json/}, responseFields: {xml: "responseXML", text: "responseText"}, converters: {"* text": e.String, "text html": true, "text json": a.parseJSON, "text xml": a.parseXML}, flatOptions: {context: true, url: true}}, ajaxPrefilter: Qt(zt), ajaxTransport: Qt(Vt), ajax: function(e, n) {
            if (typeof e === "object") {
                n = e;
                e = t
            }
            n = n || {};
            if (!n.jsonpCallback) {
                n.jsonpCallback = n.jsonpName
            }
            var i = a.ajaxSetup({}, n), r = i.context || i, o = r !== i && (r.nodeType || r instanceof a) ? a(r) : a.event, s = a.Deferred(), l = a.Callbacks("once memory"), f = i.statusCode || {}, u, c = {}, d = {}, p, h, m, g, y, v = 0, b, x, w = {readyState: 0, setRequestHeader: function(e, t) {
                    if (!v) {
                        var n = e.toLowerCase();
                        e = d[n] = d[n] || e;
                        c[e] = t
                    }
                    return this
                }, getAllResponseHeaders: function() {
                    return v === 2 ? p : null
                }, getResponseHeader: function(e) {
                    var n;
                    if (v === 2) {
                        if (!h) {
                            h = {};
                            while (n = Mt.exec(p)) {
                                h[n[1].toLowerCase()] = n[2]
                            }
                        }
                        n = h[e.toLowerCase()]
                    }
                    return n === t ? null : n
                }, overrideMimeType: function(e) {
                    if (!v) {
                        i.mimeType = e
                    }
                    return this
                }, abort: function(e) {
                    e = e || "abort";
                    if (m) {
                        m.abort(e)
                    }
                    T(0, e);
                    return this
                }};
            function T(e, n, c, d) {
                if (v === 2) {
                    return
                }
                v = 2;
                if (g) {
                    clearTimeout(g)
                }
                m = t;
                p = d || "";
                w.readyState = e > 0 ? 4 : 0;
                var h, y, x, T = n, N = c ? tn(i, w, c) : t, C, E;
                if (e >= 200 && e < 300 || e === 304) {
                    if (i.ifModified) {
                        if (C = w.getResponseHeader("Last-Modified")) {
                            a.lastModified[u] = C
                        }
                        if (E = w.getResponseHeader("Etag")) {
                            a.etag[u] = E
                        }
                    }
                    if (e === 304) {
                        T = "notmodified";
                        h = true
                    } else {
                        try {
                            y = nn(i, N);
                            T = "success";
                            h = true
                        } catch (k) {
                            T = "parsererror";
                            x = k
                        }
                    }
                } else {
                    x = T;
                    if (!T || e) {
                        T = "error";
                        if (e < 0) {
                            e = 0
                        }
                    }
                }
                w.status = e;
                w.statusText = "" + (n || T);
                if (h) {
                    s.resolveWith(r, [y, T, w])
                } else {
                    s.rejectWith(r, [w, T, x])
                }
                w.statusCode(f);
                f = t;
                if (b) {
                    o.trigger("ajax" + (h ? "Success" : "Error"), [w, i, h ? y : x])
                }
                l.fireWith(r, [w, T]);
                if (b) {
                    o.trigger("ajaxComplete", [w, i]);
                    if (!--a.active) {
                        a.event.trigger("ajaxStop")
                    }
                }
            }
            s.promise(w);
            w.success = w.done;
            w.error = w.fail;
            w.complete = l.add;
            w.statusCode = function(e) {
                if (e) {
                    var t;
                    if (v < 2) {
                        for (t in e) {
                            f[t] = [f[t], e[t]]
                        }
                    } else {
                        t = e[w.status];
                        w.then(t, t)
                    }
                }
                return this
            };
            i.url = ((e || i.url) + "").replace(Dt, "").replace(Bt, Gt[1] + "//");
            i.dataTypes = a.trim(i.dataType || "*").toLowerCase().split(It);
            if (i.crossDomain == null) {
                y = Rt.exec(i.url.toLowerCase());
                i.crossDomain = !!(y && (y[1] != Gt[1] || y[2] != Gt[2] || (y[3] || (y[1] === "http:" ? 80 : 443)) != (Gt[3] || (Gt[1] === "http:" ? 80 : 443))))
            }
            if (i.data && i.processData && typeof i.data !== "string") {
                i.data = a.param(i.data, i.traditional)
            }
            Kt(zt, i, n, w);
            if (v === 2) {
                return false
            }
            b = i.global;
            i.type = i.type.toUpperCase();
            i.hasContent = !Ht.test(i.type);
            if (b && a.active++ === 0) {
                a.event.trigger("ajaxStart")
            }
            if (!i.hasContent) {
                if (i.data) {
                    i.url += (Pt.test(i.url) ? "&" : "?") + i.data;
                    delete i.data
                }
                u = i.url;
                if (i.cache === false) {
                    var N = a.now(), C = i.url.replace($t, "$1_=" + N);
                    i.url = C + (C === i.url ? (Pt.test(i.url) ? "&" : "?") + "_=" + N : "")
                }
            }
            if (i.data && i.hasContent && i.contentType !== false || n.contentType) {
                w.setRequestHeader("Content-Type", i.contentType)
            }
            if (i.ifModified) {
                u = u || i.url;
                if (a.lastModified[u]) {
                    w.setRequestHeader("If-Modified-Since", a.lastModified[u])
                }
                if (a.etag[u]) {
                    w.setRequestHeader("If-None-Match", a.etag[u])
                }
            }
            w.setRequestHeader("Accept", i.dataTypes[0] && i.accepts[i.dataTypes[0]] ? i.accepts[i.dataTypes[0]] + (i.dataTypes[0] !== "*" ? ", " + Jt + "; q=0.01" : "") : i.accepts["*"]);
            for (x in i.headers) {
                w.setRequestHeader(x, i.headers[x])
            }
            if (i.beforeSend && (i.beforeSend.call(r, w, i) === false || v === 2)) {
                w.abort();
                return false
            }
            for (x in{success: 1, error: 1, complete: 1}) {
                w[x](i[x])
            }
            m = Kt(Vt, i, n, w);
            if (!m) {
                T(-1, "No Transport")
            } else {
                w.readyState = 1;
                if (b) {
                    o.trigger("ajaxSend", [w, i])
                }
                if (i.async && i.timeout > 0) {
                    g = setTimeout(function() {
                        w.abort("timeout")
                    }, i.timeout)
                }
                try {
                    v = 1;
                    m.send(c, T)
                } catch (E) {
                    if (v < 2) {
                        T(-1, E)
                    } else {
                        throw E
                    }
                }
            }
            return w
        }, param: function(e, n) {
            var i = [], r = function(e, t) {
                t = a.isFunction(t) ? t() : t;
                i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
            };
            if (n === t) {
                n = a.ajaxSettings.traditional
            }
            if (a.isArray(e) || e.jquery && !a.isPlainObject(e)) {
                a.each(e, function() {
                    r(this.name, this.value)
                })
            } else {
                for (var o in e) {
                    en(o, e[o], n, r)
                }
            }
            return i.join("&").replace(Lt, "+")
        }});
    function en(e, t, n, i) {
        if (a.isArray(t)) {
            a.each(t, function(t, r) {
                if (n || jt.test(e)) {
                    i(e, r)
                } else {
                    en(e + "[" + (typeof r === "object" || a.isArray(r) ? t : "") + "]", r, n, i)
                }
            })
        } else {
            if (!n && t != null && typeof t === "object") {
                for (var r in t) {
                    en(e + "[" + r + "]", t[r], n, i)
                }
            } else {
                i(e, t)
            }
        }
    }
    a.extend({active: 0, lastModified: {}, etag: {}});
    function tn(e, n, i) {
        var r = e.contents, a = e.dataTypes, o = e.responseFields, s, l, f, u;
        for (l in o) {
            if (l in i) {
                n[o[l]] = i[l]
            }
        }
        while (a[0] === "*") {
            a.shift();
            if (s === t) {
                s = e.mimeType || n.getResponseHeader("content-type")
            }
        }
        if (s) {
            for (l in r) {
                if (r[l] && r[l].test(s)) {
                    a.unshift(l);
                    break
                }
            }
        }
        if (a[0]in i) {
            f = a[0]
        } else {
            for (l in i) {
                if (!a[0] || e.converters[l + " " + a[0]]) {
                    f = l;
                    break
                }
                if (!u) {
                    u = l
                }
            }
            f = f || u
        }
        if (f) {
            if (f !== a[0]) {
                a.unshift(f)
            }
            return i[f]
        }
    }
    function nn(e, n) {
        if (e.dataFilter) {
            n = e.dataFilter(n, e.dataType)
        }
        var i = e.dataTypes, r = {}, o, s, l = i.length, f, u = i[0], c, d, p, h, m;
        for (o = 1; o < l; o++) {
            if (o === 1) {
                for (s in e.converters) {
                    if (typeof s === "string") {
                        r[s.toLowerCase()] = e.converters[s]
                    }
                }
            }
            c = u;
            u = i[o];
            if (u === "*") {
                u = c
            } else {
                if (c !== "*" && c !== u) {
                    d = c + " " + u;
                    p = r[d] || r["* " + u];
                    if (!p) {
                        m = t;
                        for (h in r) {
                            f = h.split(" ");
                            if (f[0] === c || f[0] === "*") {
                                m = r[f[1] + " " + u];
                                if (m) {
                                    h = r[h];
                                    if (h === true) {
                                        p = m
                                    } else {
                                        if (m === true) {
                                            p = h
                                        }
                                    }
                                    break
                                }
                            }
                        }
                    }
                    if (!(p || m)) {
                        a.error("No conversion from " + d.replace(" ", " to "))
                    }
                    if (p !== true) {
                        n = p ? p(n) : m(h(n))
                    }
                }
            }
        }
        return n
    }
    var rn = a.now(), an = /(\=)\?(&|$)|\?\?/i;
    a.ajaxSetup({jsonp: "callback", jsonpCallback: function() {
            return a.expando + "_" + rn++
        }});
    a.ajaxPrefilter("json jsonp", function(t, n, i) {
        var r = t.contentType === "application/x-www-form-urlencoded" && typeof t.data === "string";
        if (t.dataTypes[0] === "jsonp" || t.jsonp !== false && (an.test(t.url) || r && an.test(t.data))) {
            var o, s = t.jsonpCallback = a.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, l = e[s], f = t.url, u = t.data, c = "$1" + s + "$2";
            if (t.jsonp !== false) {
                f = f.replace(an, c);
                if (t.url === f) {
                    if (r) {
                        u = u.replace(an, c)
                    }
                    if (t.data === u) {
                        f += (/\?/.test(f) ? "&" : "?") + t.jsonp + "=" + s
                    }
                }
            }
            t.url = f;
            t.data = u;
            e[s] = function(e) {
                o = [e]
            };
            i.always(function() {
                e[s] = l;
                if (o && a.isFunction(l)) {
                    e[s](o[0])
                }
            });
            t.converters["script json"] = function() {
                if (!o) {
                    a.error(s + " was not called")
                }
                return o[0]
            };
            t.dataTypes[0] = "json";
            return"script"
        }
    });
    a.ajaxSetup({accepts: {script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"}, contents: {script: /javascript|ecmascript/}, converters: {"text script": function(e) {
                a.globalEval(e);
                return e
            }}});
    a.ajaxPrefilter("script", function(e) {
        if (e.cache === t) {
            e.cache = false
        }
        if (e.crossDomain) {
            e.type = "GET";
            e.global = false
        }
    });
    a.ajaxTransport("script", function(e) {
        if (e.crossDomain) {
            var i, r = n.head || n.getElementsByTagName("head")[0] || n.documentElement;
            return{send: function(a, o) {
                    i = n.createElement("script");
                    i.async = "async";
                    if (e.scriptCharset) {
                        i.charset = e.scriptCharset
                    }
                    i.src = e.url;
                    i.onload = i.onreadystatechange = function(e, n) {
                        if (n || !i.readyState || /loaded|complete/.test(i.readyState)) {
                            i.onload = i.onreadystatechange = null;
                            if (r && i.parentNode) {
                                r.removeChild(i)
                            }
                            i = t;
                            if (!n) {
                                o(200, "success")
                            }
                        }
                    };
                    r.insertBefore(i, r.firstChild)
                }, abort: function() {
                    if (i) {
                        i.onload(0, 1)
                    }
                }}
        }
    });
    var on = e.ActiveXObject ? function() {
        for (var e in ln) {
            ln[e](0, 1)
        }
    } : false, sn = 0, ln;
    function fn() {
        try {
            return new e.XMLHttpRequest
        } catch (t) {
        }
    }
    function un() {
        try {
            return new e.ActiveXObject("Microsoft.XMLHTTP")
        } catch (t) {
        }
    }
    a.ajaxSettings.xhr = e.ActiveXObject ? function() {
        return!this.isLocal && fn() || un()
    } : fn;
    !function(e) {
        a.extend(a.support, {ajax: !!e, cors: !!e && "withCredentials"in e})
    }(a.ajaxSettings.xhr());
    if (a.support.ajax) {
        a.ajaxTransport(function(n) {
            if (!n.crossDomain || a.support.cors) {
                var i;
                return{send: function(r, o) {
                        var s = n.xhr(), l, f;
                        if (n.username) {
                            s.open(n.type, n.url, n.async, n.username, n.password)
                        } else {
                            s.open(n.type, n.url, n.async)
                        }
                        if (n.xhrFields) {
                            for (f in n.xhrFields) {
                                s[f] = n.xhrFields[f]
                            }
                        }
                        if (n.mimeType && s.overrideMimeType) {
                            s.overrideMimeType(n.mimeType)
                        }
                        if (!n.crossDomain && !r["X-Requested-With"]) {
                            r["X-Requested-With"] = "XMLHttpRequest"
                        }
                        try {
                            for (f in r) {
                                s.setRequestHeader(f, r[f])
                            }
                        } catch (u) {
                        }
                        s.send(n.hasContent && n.data || null);
                        i = function(e, r) {
                            var f, u, c, d, p;
                            try {
                                if (i && (r || s.readyState === 4)) {
                                    i = t;
                                    if (l) {
                                        s.onreadystatechange = a.noop;
                                        if (on) {
                                            delete ln[l]
                                        }
                                    }
                                    if (r) {
                                        if (s.readyState !== 4) {
                                            s.abort()
                                        }
                                    } else {
                                        f = s.status;
                                        c = s.getAllResponseHeaders();
                                        d = {};
                                        p = s.responseXML;
                                        if (p && p.documentElement) {
                                            d.xml = p
                                        }
                                        d.text = s.responseText;
                                        try {
                                            u = s.statusText
                                        } catch (h) {
                                            u = ""
                                        }
                                        if (!f && n.isLocal && !n.crossDomain) {
                                            f = d.text ? 200 : 404
                                        } else {
                                            if (f === 1223) {
                                                f = 204
                                            }
                                        }
                                    }
                                }
                            } catch (m) {
                                if (!r) {
                                    o(-1, m)
                                }
                            }
                            if (d) {
                                o(f, u, d, c)
                            }
                        };
                        if (!n.async || s.readyState === 4) {
                            i()
                        } else {
                            l = ++sn;
                            if (on) {
                                if (!ln) {
                                    ln = {};
                                    a(e).unload(on)
                                }
                                ln[l] = i
                            }
                            s.onreadystatechange = i
                        }
                    }, abort: function() {
                        if (i) {
                            i(0, 1)
                        }
                    }}
            }
        })
    }
    var cn = {}, dn, pn, hn = /^(?:toggle|show|hide)$/, mn = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i, gn, yn = [["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], ["opacity"]], vn;
    a.fn.extend({show: function(e, t, n) {
            var i, r;
            if (e || e === 0) {
                return this.animate(wn("show", 3), e, t, n)
            } else {
                for (var o = 0, s = this.length; o < s; o++) {
                    i = this[o];
                    if (i.style) {
                        r = i.style.display;
                        if (!a._data(i, "olddisplay") && r === "none") {
                            r = i.style.display = ""
                        }
                        if (r === "" && a.css(i, "display") === "none") {
                            a._data(i, "olddisplay", Tn(i.nodeName))
                        }
                    }
                }
                for (o = 0; o < s; o++) {
                    i = this[o];
                    if (i.style) {
                        r = i.style.display;
                        if (r === "" || r === "none") {
                            i.style.display = a._data(i, "olddisplay") || ""
                        }
                    }
                }
                return this
            }
        }, hide: function(e, t, n) {
            if (e || e === 0) {
                return this.animate(wn("hide", 3), e, t, n)
            } else {
                var i, r, o = 0, s = this.length;
                for (; o < s; o++) {
                    i = this[o];
                    if (i.style) {
                        r = a.css(i, "display");
                        if (r !== "none" && !a._data(i, "olddisplay")) {
                            a._data(i, "olddisplay", r)
                        }
                    }
                }
                for (o = 0; o < s; o++) {
                    if (this[o].style) {
                        this[o].style.display = "none"
                    }
                }
                return this
            }
        }, _toggle: a.fn.toggle, toggle: function(e, t, n) {
            var i = typeof e === "boolean";
            if (a.isFunction(e) && a.isFunction(t)) {
                this._toggle.apply(this, arguments)
            } else {
                if (e == null || i) {
                    this.each(function() {
                        var t = i ? e : a(this).is(":hidden");
                        a(this)[t ? "show" : "hide"]()
                    })
                } else {
                    this.animate(wn("toggle", 3), e, t, n)
                }
            }
            return this
        }, fadeTo: function(e, t, n, i) {
            return this.filter(":hidden").css("opacity", 0).show().end().animate({opacity: t}, e, n, i)
        }, animate: function(e, t, n, i) {
            var r = a.speed(t, n, i);
            if (a.isEmptyObject(e)) {
                return this.each(r.complete, [false])
            }
            e = a.extend({}, e);
            function o() {
                if (r.queue === false) {
                    a._mark(this)
                }
                var t = a.extend({}, r), n = this.nodeType === 1, i = n && a(this).is(":hidden"), o, s, l, f, u, c, d, p, h;
                t.animatedProperties = {};
                for (l in e) {
                    o = a.camelCase(l);
                    if (l !== o) {
                        e[o] = e[l];
                        delete e[l]
                    }
                    s = e[o];
                    if (a.isArray(s)) {
                        t.animatedProperties[o] = s[1];
                        s = e[o] = s[0]
                    } else {
                        t.animatedProperties[o] = t.specialEasing && t.specialEasing[o] || t.easing || "swing"
                    }
                    if (s === "hide" && i || s === "show" && !i) {
                        return t.complete.call(this)
                    }
                    if (n && (o === "height" || o === "width")) {
                        t.overflow = [this.style.overflow, this.style.overflowX, this.style.overflowY];
                        if (a.css(this, "display") === "inline" && a.css(this, "float") === "none") {
                            if (!a.support.inlineBlockNeedsLayout || Tn(this.nodeName) === "inline") {
                                this.style.display = "inline-block"
                            } else {
                                this.style.zoom = 1
                            }
                        }
                    }
                }
                if (t.overflow != null) {
                    this.style.overflow = "hidden"
                }
                for (l in e) {
                    f = new a.fx(this, t, l);
                    s = e[l];
                    if (hn.test(s)) {
                        h = a._data(this, "toggle" + l) || (s === "toggle" ? i ? "show" : "hide" : 0);
                        if (h) {
                            a._data(this, "toggle" + l, h === "show" ? "hide" : "show");
                            f[h]()
                        } else {
                            f[s]()
                        }
                    } else {
                        u = mn.exec(s);
                        c = f.cur();
                        if (u) {
                            d = parseFloat(u[2]);
                            p = u[3] || (a.cssNumber[l] ? "" : "px");
                            if (p !== "px") {
                                a.style(this, l, (d || 1) + p);
                                c = (d || 1) / f.cur() * c;
                                a.style(this, l, c + p)
                            }
                            if (u[1]) {
                                d = (u[1] === "-=" ? -1 : 1) * d + c
                            }
                            f.custom(c, d, p)
                        } else {
                            f.custom(c, s, "")
                        }
                    }
                }
                return true
            }
            return r.queue === false ? this.each(o) : this.queue(r.queue, o)
        }, stop: function(e, n, i) {
            if (typeof e !== "string") {
                i = n;
                n = e;
                e = t
            }
            if (n && e !== false) {
                this.queue(e || "fx", [])
            }
            return this.each(function() {
                var t, n = false, r = a.timers, o = a._data(this);
                if (!i) {
                    a._unmark(true, this)
                }
                function s(e, t, n) {
                    var r = t[n];
                    a.removeData(e, n, true);
                    r.stop(i)
                }
                if (e == null) {
                    for (t in o) {
                        if (o[t] && o[t].stop && t.indexOf(".run") === t.length - 4) {
                            s(this, o, t)
                        }
                    }
                } else {
                    if (o[t = e + ".run"] && o[t].stop) {
                        s(this, o, t)
                    }
                }
                for (t = r.length; t--; ) {
                    if (r[t].elem === this && (e == null || r[t].queue === e)) {
                        if (i) {
                            r[t](true)
                        } else {
                            r[t].saveState()
                        }
                        n = true;
                        r.splice(t, 1)
                    }
                }
                if (!(i && n)) {
                    a.dequeue(this, e)
                }
            })
        }});
    function bn() {
        setTimeout(xn, 0);
        return vn = a.now()
    }
    function xn() {
        vn = t
    }
    function wn(e, t) {
        var n = {};
        a.each(yn.concat.apply([], yn.slice(0, t)), function() {
            n[this] = e
        });
        return n
    }
    a.each({slideDown: wn("show", 1), slideUp: wn("hide", 1), slideToggle: wn("toggle", 1), fadeIn: {opacity: "show"}, fadeOut: {opacity: "hide"}, fadeToggle: {opacity: "toggle"}}, function(e, t) {
        a.fn[e] = function(e, n, i) {
            return this.animate(t, e, n, i)
        }
    });
    a.extend({speed: function(e, t, n) {
            var i = e && typeof e === "object" ? a.extend({}, e) : {complete: n || !n && t || a.isFunction(e) && e, duration: e, easing: n && t || t && !a.isFunction(t) && t};
            i.duration = a.fx.off ? 0 : typeof i.duration === "number" ? i.duration : i.duration in a.fx.speeds ? a.fx.speeds[i.duration] : a.fx.speeds._default;
            if (i.queue == null || i.queue === true) {
                i.queue = "fx"
            }
            i.old = i.complete;
            i.complete = function(e) {
                if (a.isFunction(i.old)) {
                    i.old.call(this)
                }
                if (i.queue) {
                    a.dequeue(this, i.queue)
                } else {
                    if (e !== false) {
                        a._unmark(this)
                    }
                }
            };
            return i
        }, easing: {linear: function(e, t, n, i) {
                return n + i * e
            }, swing: function(e, t, n, i) {
                return(-Math.cos(e * Math.PI) / 2 + .5) * i + n
            }}, timers: [], fx: function(e, t, n) {
            this.options = t;
            this.elem = e;
            this.prop = n;
            t.orig = t.orig || {}
        }});
    a.fx.prototype = {update: function() {
            if (this.options.step) {
                this.options.step.call(this.elem, this.now, this)
            }
            (a.fx.step[this.prop] || a.fx.step._default)(this)
        }, cur: function() {
            if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) {
                return this.elem[this.prop]
            }
            var e, t = a.css(this.elem, this.prop);
            return isNaN(e = parseFloat(t)) ? !t || t === "auto" ? 0 : t : e
        }, custom: function(e, n, i) {
            var r = this, o = a.fx;
            this.startTime = vn || bn();
            this.end = n;
            this.now = this.start = e;
            this.pos = this.state = 0;
            this.unit = i || this.unit || (a.cssNumber[this.prop] ? "" : "px");
            function s(e) {
                return r.step(e)
            }
            s.queue = this.options.queue;
            s.elem = this.elem;
            s.saveState = function() {
                if (r.options.hide && a._data(r.elem, "fxshow" + r.prop) === t) {
                    a._data(r.elem, "fxshow" + r.prop, r.start)
                }
            };
            if (s() && a.timers.push(s) && !gn) {
                gn = setInterval(o.tick, o.interval)
            }
        }, show: function() {
            var e = a._data(this.elem, "fxshow" + this.prop);
            this.options.orig[this.prop] = e || a.style(this.elem, this.prop);
            this.options.show = true;
            if (e !== t) {
                this.custom(this.cur(), e)
            } else {
                this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur())
            }
            a(this.elem).show()
        }, hide: function() {
            this.options.orig[this.prop] = a._data(this.elem, "fxshow" + this.prop) || a.style(this.elem, this.prop);
            this.options.hide = true;
            this.custom(this.cur(), 0)
        }, step: function(e) {
            var t, n, i, r = vn || bn(), o = true, s = this.elem, l = this.options;
            if (e || r >= l.duration + this.startTime) {
                this.now = this.end;
                this.pos = this.state = 1;
                this.update();
                l.animatedProperties[this.prop] = true;
                for (t in l.animatedProperties) {
                    if (l.animatedProperties[t] !== true) {
                        o = false
                    }
                }
                if (o) {
                    if (l.overflow != null && !a.support.shrinkWrapBlocks) {
                        a.each(["", "X", "Y"], function(e, t) {
                            s.style["overflow" + t] = l.overflow[e]
                        })
                    }
                    if (l.hide) {
                        a(s).hide()
                    }
                    if (l.hide || l.show) {
                        for (t in l.animatedProperties) {
                            a.style(s, t, l.orig[t]);
                            a.removeData(s, "fxshow" + t, true);
                            a.removeData(s, "toggle" + t, true)
                        }
                    }
                    i = l.complete;
                    if (i) {
                        l.complete = false;
                        i.call(s)
                    }
                }
                return false
            } else {
                if (l.duration == Infinity) {
                    this.now = r
                } else {
                    n = r - this.startTime;
                    this.state = n / l.duration;
                    this.pos = a.easing[l.animatedProperties[this.prop]](this.state, n, 0, 1, l.duration);
                    this.now = this.start + (this.end - this.start) * this.pos
                }
                this.update()
            }
            return true
        }};
    a.extend(a.fx, {tick: function() {
            var e, t = a.timers, n = 0;
            for (; n < t.length; n++) {
                e = t[n];
                if (!e() && t[n] === e) {
                    t.splice(n--, 1)
                }
            }
            if (!t.length) {
                a.fx.stop()
            }
        }, interval: 13, stop: function() {
            clearInterval(gn);
            gn = null
        }, speeds: {slow: 600, fast: 200, _default: 400}, step: {opacity: function(e) {
                a.style(e.elem, "opacity", e.now)
            }, _default: function(e) {
                if (e.elem.style && e.elem.style[e.prop] != null) {
                    e.elem.style[e.prop] = e.now + e.unit
                } else {
                    e.elem[e.prop] = e.now
                }
            }}});
    a.each(["width", "height"], function(e, t) {
        a.fx.step[t] = function(e) {
            a.style(e.elem, t, Math.max(0, e.now) + e.unit)
        }
    });
    if (a.expr && a.expr.filters) {
        a.expr.filters.animated = function(e) {
            return a.grep(a.timers, function(t) {
                return e === t.elem
            }).length
        }
    }
    function Tn(e) {
        if (!cn[e]) {
            var t = n.body, i = a("<" + e + ">").appendTo(t), r = i.css("display");
            i.remove();
            if (r === "none" || r === "") {
                if (!dn) {
                    dn = n.createElement("iframe");
                    dn.frameBorder = dn.width = dn.height = 0
                }
                t.appendChild(dn);
                if (!pn || !dn.createElement) {
                    pn = (dn.contentWindow || dn.contentDocument).document;
                    pn.write((n.compatMode === "CSS1Compat" ? "<!doctype html>" : "") + "<html><body>");
                    pn.close()
                }
                i = pn.createElement(e);
                pn.body.appendChild(i);
                r = a.css(i, "display");
                t.removeChild(dn)
            }
            cn[e] = r
        }
        return cn[e]
    }
    var Nn = /^t(?:able|d|h)$/i, Cn = /^(?:body|html)$/i;
    if ("getBoundingClientRect"in n.documentElement) {
        a.fn.offset = function(e) {
            var t = this[0], n;
            if (e) {
                return this.each(function(t) {
                    a.offset.setOffset(this, e, t)
                })
            }
            if (!t || !t.ownerDocument) {
                return null
            }
            if (t === t.ownerDocument.body) {
                return a.offset.bodyOffset(t)
            }
            try {
                n = t.getBoundingClientRect()
            } catch (i) {
            }
            var r = t.ownerDocument, o = r.documentElement;
            if (!n || !a.contains(o, t)) {
                return n ? {top: n.top, left: n.left} : {top: 0, left: 0}
            }
            var s = r.body, l = En(r), f = o.clientTop || s.clientTop || 0, u = o.clientLeft || s.clientLeft || 0, c = l.pageYOffset || a.support.boxModel && o.scrollTop || s.scrollTop, d = l.pageXOffset || a.support.boxModel && o.scrollLeft || s.scrollLeft, p = n.top + c - f, h = n.left + d - u;
            return{top: p, left: h}
        }
    } else {
        a.fn.offset = function(e) {
            var t = this[0];
            if (e) {
                return this.each(function(t) {
                    a.offset.setOffset(this, e, t)
                })
            }
            if (!t || !t.ownerDocument) {
                return null
            }
            if (t === t.ownerDocument.body) {
                return a.offset.bodyOffset(t)
            }
            var n, i = t.offsetParent, r = t, o = t.ownerDocument, s = o.documentElement, l = o.body, f = o.defaultView, u = f ? f.getComputedStyle(t, null) : t.currentStyle, c = t.offsetTop, d = t.offsetLeft;
            while ((t = t.parentNode) && t !== l && t !== s) {
                if (a.support.fixedPosition && u.position === "fixed") {
                    break
                }
                n = f ? f.getComputedStyle(t, null) : t.currentStyle;
                c -= t.scrollTop;
                d -= t.scrollLeft;
                if (t === i) {
                    c += t.offsetTop;
                    d += t.offsetLeft;
                    if (a.support.doesNotAddBorder && !(a.support.doesAddBorderForTableAndCells && Nn.test(t.nodeName))) {
                        c += parseFloat(n.borderTopWidth) || 0;
                        d += parseFloat(n.borderLeftWidth) || 0
                    }
                    r = i;
                    i = t.offsetParent
                }
                if (a.support.subtractsBorderForOverflowNotVisible && n.overflow !== "visible") {
                    c += parseFloat(n.borderTopWidth) || 0;
                    d += parseFloat(n.borderLeftWidth) || 0
                }
                u = n
            }
            if (u.position === "relative" || u.position === "static") {
                c += l.offsetTop;
                d += l.offsetLeft
            }
            if (a.support.fixedPosition && u.position === "fixed") {
                c += Math.max(s.scrollTop, l.scrollTop);
                d += Math.max(s.scrollLeft, l.scrollLeft)
            }
            return{top: c, left: d}
        }
    }
    a.offset = {bodyOffset: function(e) {
            var t = e.offsetTop, n = e.offsetLeft;
            if (a.support.doesNotIncludeMarginInBodyOffset) {
                t += parseFloat(a.css(e, "marginTop")) || 0;
                n += parseFloat(a.css(e, "marginLeft")) || 0
            }
            return{top: t, left: n}
        }, setOffset: function(e, t, n) {
            var i = a.css(e, "position");
            if (i === "static") {
                e.style.position = "relative"
            }
            var r = a(e), o = r.offset(), s = a.css(e, "top"), l = a.css(e, "left"), f = (i === "absolute" || i === "fixed") && a.inArray("auto", [s, l]) > -1, u = {}, c = {}, d, p;
            if (f) {
                c = r.position();
                d = c.top;
                p = c.left
            } else {
                d = parseFloat(s) || 0;
                p = parseFloat(l) || 0
            }
            if (a.isFunction(t)) {
                t = t.call(e, n, o)
            }
            if (t.top != null) {
                u.top = t.top - o.top + d
            }
            if (t.left != null) {
                u.left = t.left - o.left + p
            }
            if ("using"in t) {
                t.using.call(e, u)
            } else {
                r.css(u)
            }
        }};
    a.fn.extend({position: function() {
            if (!this[0]) {
                return null
            }
            var e = this[0], t = this.offsetParent(), n = this.offset(), i = Cn.test(t[0].nodeName) ? {top: 0, left: 0} : t.offset();
            n.top -= parseFloat(a.css(e, "marginTop")) || 0;
            n.left -= parseFloat(a.css(e, "marginLeft")) || 0;
            i.top += parseFloat(a.css(t[0], "borderTopWidth")) || 0;
            i.left += parseFloat(a.css(t[0], "borderLeftWidth")) || 0;
            return{top: n.top - i.top, left: n.left - i.left}
        }, offsetParent: function() {
            return this.map(function() {
                var e = this.offsetParent || n.body;
                while (e && !Cn.test(e.nodeName) && a.css(e, "position") === "static") {
                    e = e.offsetParent
                }
                return e
            })
        }});
    a.each(["Left", "Top"], function(e, n) {
        var i = "scroll" + n;
        a.fn[i] = function(n) {
            var r, o;
            if (n === t) {
                r = this[0];
                if (!r) {
                    return null
                }
                o = En(r);
                return o ? "pageXOffset"in o ? o[e ? "pageYOffset" : "pageXOffset"] : a.support.boxModel && o.document.documentElement[i] || o.document.body[i] : r[i]
            }
            return this.each(function() {
                o = En(this);
                if (o) {
                    o.scrollTo(!e ? n : a(o).scrollLeft(), e ? n : a(o).scrollTop())
                } else {
                    this[i] = n
                }
            })
        }
    });
    function En(e) {
        return a.isWindow(e) ? e : e.nodeType === 9 ? e.defaultView || e.parentWindow : false
    }
    a.each(["Height", "Width"], function(e, n) {
        var i = n.toLowerCase();
        a.fn["inner" + n] = function() {
            var e = this[0];
            return e ? e.style ? parseFloat(a.css(e, i, "padding")) : this[i]() : null
        };
        a.fn["outer" + n] = function(e) {
            var t = this[0];
            return t ? t.style ? parseFloat(a.css(t, i, e ? "margin" : "border")) : this[i]() : null
        };
        a.fn[i] = function(e) {
            var r = this[0];
            if (!r) {
                return e == null ? null : this
            }
            if (a.isFunction(e)) {
                return this.each(function(t) {
                    var n = a(this);
                    n[i](e.call(this, t, n[i]()))
                })
            }
            if (a.isWindow(r)) {
                var o = r.document.documentElement["client" + n], s = r.document.body;
                return r.document.compatMode === "CSS1Compat" && o || s && s["client" + n] || o
            } else {
                if (r.nodeType === 9) {
                    return Math.max(r.documentElement["client" + n], r.body["scroll" + n], r.documentElement["scroll" + n], r.body["offset" + n], r.documentElement["offset" + n])
                } else {
                    if (e === t) {
                        var l = a.css(r, i), f = parseFloat(l);
                        return a.isNumeric(f) ? f : l
                    } else {
                        return this.css(i, typeof e === "string" ? e : e + "px")
                    }
                }
            }
        }
    });
    e.jQuery = e.$ = a;
    if (typeof define === "function" && define.amd && define.amd.jQuery) {
        define("jquery", [], function() {
            return a
        })
    }
}(window);
jQuery.cookie = function(e, i, r) {
    if (typeof i != "undefined") {
        r = r || {};
        if (i === null) {
            i = "";
            r.expires = -1
        }
        var o = "";
        if (r.expires && (typeof r.expires == "number" || r.expires.toUTCString)) {
            var n;
            if (typeof r.expires == "number") {
                n = new Date;
                n.setTime(n.getTime() + r.expires * 24 * 60 * 60 * 1e3)
            } else {
                n = r.expires
            }
            o = "; expires=" + n.toUTCString()
        }
        var t = r.path ? "; path=" + r.path : "";
        var s = r.domain ? "; domain=" + r.domain : "";
        var a = r.secure ? "; secure" : "";
        document.cookie = [e, "=", encodeURIComponent(i), o, t, s, a].join("")
    } else {
        var p = null;
        if (document.cookie && document.cookie != "") {
            var u = document.cookie.split(";");
            for (var c = 0; c < u.length; c++) {
                var m = jQuery.trim(u[c]);
                if (m.substring(0, e.length + 1) == e + "=") {
                    p = decodeURIComponent(m.substring(e.length + 1));
                    break
                }
            }
        }
        return p
    }
};
var protocol = "https";
window.cartMax = 100;
window.loginData = window.loginData || {};
window.loginstatus = true;
window.HeartBeat = 1;
window.HeartTime;
(window.IpHeartBeat = function() {
    HeartTime = window.setTimeout(function() {
        if (HeartBeat && HeartBeat <= 10) {
            HeartBeat += 1;
            IpHeartBeat()
        } else {
            signData.init()
        }
    }, 1e3)
})();
var $domain = cookieDomain;
var $atgregion = "atgregion";
if (location.host.indexOf("hk") != -1 && location.host.indexOf("item") != -1) {
    $domain = location.host.replace("item", "");
    $atgregion = "hwgregion"
}
$.ajax({type: "get", url: "http://ss" + $domain + "/item/v1/cookie/" + $atgregion + "/flag/public/ipWrite", cache: false, dataType: "jsonp", jsonpName: "ipWrite", success: function() {
        signData.init()
    }});
window.signData = {gloginfn: null, lazyCartEnd: false, loginEnd: false, gloginCallback: function() {
        if (signData.lazyCartEnd && signData.loginEnd) {
            signData.gloginfn && signData.gloginfn()
        }
    }, init: function() {
        HeartBeat = null;
        window.clearTimeout(HeartTime);
        this.dynUrl = dynSite + contextPath;
        this.memUrl = "http://member" + cookieDomain + "/gome/index/loginStyle";
        this.isAjax = false;
        this.callName = null;
        this.getUser();
        this.lazyCart();
        this.bindUser();
        this.bindMygome();
        this.toSite = "commerceDetail";
        this.ieUpdater()
    }, lazyCart: function(t) {
        signData.__state = t;
        this.getAjax({Jurl: "http://cart" + cookieDomain + "/home/api/cart/getCartItemCount", Jcall: this.lazyCartDom})
    }, lazyCartDom: function(t) {
        signData.lazyCartEnd = true;
        if (signData.__state == true) {
            signData.__state = null
        } else {
            signData.gloginCallback()
        }
        if (t.success === true) {
            $("#gome-aside-cart").find(".car_num s").html(t.data);
            $(".gome-bar-btn-cart").find(".car_num s").html(t.data);
            $("#commerceItemQuantityId").html(t.data);
            if (t.data != 0) {
                $("#hdrcarttext").text("去购物车结算");
                $(".gome-bar-btn-cart .car_num, #gome-aside-cart .car_num").css("background", "red");
                $("#gome-bar-btn-cart .caricon,#gome-aside-cart .caricon").addClass("caricon_num");
                $(".gome-bar-btn-cart .car_num, #gome-aside-cart .car_num").removeClass("car_num_0").addClass("car_num_more");
                $(".mygome-side").addClass("havecount")
            } else {
                $(".gome-bar-btn-cart .car_num, #gome-aside-cart .car_num").css("background", "#A5A5A5");
                $("#gome-bar-btn-cart .caricon,#gome-aside-cart .caricon").removeClass("caricon_num");
                $(".gome-bar-btn-cart .car_num, #gome-aside-cart .car_num").addClass("car_num_0").removeClass("car_num_more");
                $(".mygome-side").removeClass("havecount");
                $("#hdrcarttext").text("购物车空了");
                return
            }
            $("#commerceItemQuantityId").html(t.data);
            if (t.data > 0) {
                $("[data-cart='mincart'],.cart").addClass("havecount");
                $("#hdrcarttext").text("去购物车结算")
            }
        } else {
            return
        }
    }, setLoginStyle: function(t) {
        loginData = t;
        loginstatus = $.trim(loginData.isTransient);
        cartMax = parseInt(loginData.max) || 100
    }, getUser: function() {
        var t = {type: 1};
        if (typeof window.prdInfo != "undefined")
            t = {type: 1, productId: window.prdInfo.prdId, skuId: window.prdInfo.sku};
        this.login(t, this.getUserDom)
    }, getUserDom: function(t) {
        signData.setLoginStyle(t);
        signData.isAjax = true;
        if (loginstatus != "true") {
            if (t.loginStatus == 3) {
                $("#loginDiv-name").html('Hi,&nbsp;<a data-code="public01054" href="http://v' + cookieDomain + '" target="_blank">' + t.loginName + '&nbsp<em class="level-g' + (t.gradeId - 10) + '"></em><i></i>');
                $("#loginDiv-link").html('<a data-code="public01035" class="gome-link-logout" href="' + protocol + "://login" + cookieDomain + '/login?type=logout">退出</a>')
            } else {
                $("#loginDiv-name").html('Hi,&nbsp;<a data-code="public01054" href="http://v' + cookieDomain + '" target="_blank">' + t.loginName + '&nbsp<em class="level-g' + (t.gradeId - 10) + '"></em><i></i>');
                $("#loginDiv-link").html('<a data-code="public01002"  href="' + protocol + "://login" + cookieDomain + '/login">请登录</a>')
            }
        }
    }, getUserCall: function(t) {
        if (signData.isAjax) {
            t(loginstatus)
        } else {
            signData.callList.push(t)
        }
    }, callList: [], bindUser: function() {
        $("#gome-user").hover(function() {
            if (!$(this).data("open")) {
                $(this).children("div").load("/n/common/global/head_" + $(this).data("load") + ".html", function() {
                    $(this).parent().attr("data-open", "true");
                    $.ajax({url: stageJsServer + "/gmlib/ui/jcarousellite/1.0.1/jcarousellite.min.js", dataType: "script", cache: true, success: function() {
                            $("#user-icon div").jCarouselLite({btnNext: ".user-icon-next", btnPrev: ".user-icon-prev", visible: 3, circular: false, scroll: 3})
                        }});
                    if (loginstatus != "true") {
                        $.ajax({url: "http://member" + cookieDomain + "/myaccount/profitAccountDetail/getProfitAccountDetail", type: "get", data: {type: 0}, dataType: "jsonp", jsonpName: "ckdataPublic", success: function(a) {
                                try {
                                    t(a)
                                } catch (e) {
                                }
                            }})
                    }
                    function t(t) {
                        var a = t;
                        if (a.hasOwnProperty("error")) {
                            return
                        }
                        UserNameHtml = '<a data-code="public01048" href="http://v' + cookieDomain + '" target="_blank"><i><img src="' + a.profitDetail.imagePath + '"></i></a>                                <div>                                    <p><strong><a data-code="public01036" href="http://v' + cookieDomain + '" target="_blank">' + a.profitDetail.login + "</a></strong><em>G" + (a.profitDetail.gradeID - 10) + '</em></p>                                    <a data-code="public01047" href="http://help.gome.com.cn/question/26.html" target="_blank">                                        <p id="gradeup-amount" class="user-name-level"><span></span><sup>' + a.profitDetail.totalAmount + "/" + a.profitDetail.milestone + '</sup></p>                                        <p id="gradeup-day" class="user-name-level"><span></span><sup>' + a.profitDetail.totalAmount2 + "/" + a.profitDetail.milestone2 + '</sup></p>                                        <p id="gradeup-tips"></p>                                    </a>                                </div>';
                        $("#user-name").html(UserNameHtml);
                        $("#gradeup-amount").find("span").css("width", Math.round(a.profitDetail.totalAmount * 100 / a.profitDetail.milestone) + "%");
                        $("#gradeup-day").find("span").css("width", Math.round(a.profitDetail.totalAmount2 * 100 / a.profitDetail.milestone2) + "%");
                        if (a.profitDetail.gradeName == "G5") {
                            $("#gradeup-tips").html("您已达到最高等级，可享受G5会员特权。")
                        } else if (a.profitDetail.gradeName == "G1") {
                            $("#gradeup-tips").html("升级到" + a.profitDetail.nextGradeName + "还需<ins>" + a.profitDetail.gradeUpAmount2 + "</ins>个购物天数");
                            $("#gradeup-amount").find("span").css("width", "100%")
                        } else if (a.profitDetail.totalAmount < a.profitDetail.milestone && a.profitDetail.totalAmount2 < a.profitDetail.milestone2) {
                            $("#gradeup-tips").html("升级到" + a.profitDetail.nextGradeName + "还需<ins>" + a.profitDetail.gradeUpAmount + "</ins>成长值,<ins>" + a.profitDetail.gradeUpAmount2 + "</ins>个购物天数")
                        } else if (a.profitDetail.totalAmount >= a.profitDetail.milestone) {
                            $("#gradeup-tips").html("升级到" + a.profitDetail.nextGradeName + "还需<ins>" + a.profitDetail.gradeUpAmount2 + "</ins>个购物天数")
                        } else {
                            $("#gradeup-tips").html("升级到" + a.profitDetail.nextGradeName + "还需<ins>" + a.profitDetail.gradeUpAmount + "</ins>成长值")
                        }
                        var e = 0;
                        $("#user-icon li").each(function() {
                            var t = $(this).data("icon");
                            if (a.profitDetail[t] == true) {
                                $(this).addClass("hover");
                                e = e + 1
                            }
                        });
                        $("#user-icon p").empty().append('<a data-code="public01037" href="http://v.gome.com.cn/" target="_blank">会员俱乐部</a>我的<span>' + e + "</span>项特权")
                    }}
                )
            }
            $(this).addClass("hover");
            $(this).children(".public-dropdown").css("height", "auto")
        }, function() {
            $(this).removeClass("hover");
            $(this).children(".public-dropdown").css("height", "0")
        })
    }, bindMygome: function() {
        $("#gome-mygome").hover(function() {
            if (!$(this).data("open")) {
                $(this).children("div").load("/n/common/global/head_" + $(this).data("load") + ".html", function() {
                    $(this).parent().attr("data-open", "true");
                    signData.login({type: 1}, signData.Mygome)
                })
            }
            $(this).addClass("hover");
            $(this).children(".public-dropdown").css("height", "auto")
        }, function() {
            $(this).removeClass("hover");
            $(this).children(".public-dropdown").css("height", "0")
        })
    }, Mygome: function(data) {
        signData.setLoginStyle(data);
        if (loginstatus != "true") {
            signData.getAjax({Jname: "ckdata_public", Jurl: "http://member" + cookieDomain + "/myaccount/couponInfo/getUnusedCouponCount", Jcall: signData.myGome_Coupon});
            signData.getAjax({Jname: "ckdata_public", Jurl: "http://order" + cookieDomain + "/myOrderCount/queryOrderRemindInfo", Jcall: signData.myGome_Pay});
            var _prs = $.cookie("proid120517atg"), _p_ = [];
            try {
                eval("var _p_=" + _prs)
            } catch (e) {
            }
            if (!_p_)
                _p_ = [];
            if (_p_.length <= 0) {
            } else {
                signData.getAjax({Jname: "topbrowsed", Jurl: "http://ss" + cookieDomain + "/item/v1/browse/prdreturn/" + _p_.join(",") + "/50/flag/publicv1/topbrowsed", Jcall: signData.myGome_MyHistory})
            }
            $("#gome-mygome strong").html('<a data-code="public01051" href="http://myhome' + cookieDomain + '/member/profileHome?flag=a" target="_blank">' + data.loginName + "的国美</a>")
        }
    }, myGome_MyHistory: function(t) {
        if (t.result) {
            var a = "", e = t.result;
            if (t.result.length < 4) {
                var i = t.result.length
            } else {
                var i = 4
            }
            for (var o = 0; o < i; o++) {
                a += '<li><a data-code="public01039-' + o + '" target="_blank" href="' + e[o].url + '"><img src="' + e[o].pic + '" alt="' + e[o].name + '"/></a></li>'
            }
            $("#mygome-track").empty().append(a)
        }
    }, myGome_Pay: function(t) {
        $("#waitPay").html('<a data-code="public01040" href="http://myhome.gome.com.cn/member/myOrder" target="_blank">' + t.result.orderCount.pendingPayOrderCount + "</a>")
    }, myGome_Coupon: function(t) {
        function a(t, a, e) {
            if (t && t != 0) {
                $(a).html('<a data-code="' + e + '" href="' + dynSite + contextPath + '/myaccount/gomeMyCoupon.jsp?flag=a4" target="_blank">' + t + "</a>")
            }
        }
        a(t.result.buessObj.result.red, "#redCoupon", "public01017-1");
        a(t.result.buessObj.result.blue, "#blueCoupon", "public01018-1");
        a(t.result.buessObj.result.shopCoupon, "#shopCoupon", "public01020-1");
        a(t.result.buessObj.result.blue, "#totalCouponCount", "public01022-1")
    }, login: function(pram, callback) {
        signData.loginEnd = true;
        signData.gloginCallback();
        if (loginstatus) {
            var _url = this.dynUrl + "/navigation/gome/index/loginStyle.jsp";
            this.getAjax({Jname: "logintop", Jurl: this.memUrl, Jdat: pram || {}, Jcall: function(t) {
                    if (t.loginStatus && t.loginStatus < 2) {
                        t.isTransient = "true"
                    } else {
                        t.isTransient = "false"
                    }
                    if (callback)
                        callback(t);
                    for (var a = 0; a < signData.callList.length; a++) {
                        signData.callList[a](loginstatus)
                    }
                    signData.callList = []
                }})
        } else {
            if (callback) {
                eval(callback)
            }
        }
    }, loginPop: function(t) {
        this.callName = t || null;
        this.login({type: 1}, this.loginPopEvent)
    }, loginPopEvent: function(data) {
        signData.setLoginStyle(data);
        if (loginstatus != "true") {
            if (signData.callName)
                eval(signData.callName)
        } else {
            try {
                g.login(function() {
                    eval(signData.callName)
                })
            } catch (exception) {
            }
        }
    }, ieUpdater: function() {
        if ($.browser.msie && $.browser.version == "6.0" && !$.support.style) {
            $.ajax({url: stageJsServer + "/gmlib/unit/ie-updater/1.0.0/ie-updater.min.js", dataType: "script", cache: true})
        }
    }, getAjax: function(t) {
        try {
            $.ajax({type: "get", url: t.Jurl, data: t.Jdat || {}, dataType: "jsonp", jsonpName: t.Jname, success: function(a) {
                    t.Jcall(a)
                }, error: function() {
                }})
        } catch (a) {
        }
    }};
$(function(t) {
    t(".gome-top li.drop").hover(function() {
        if (!t(this).data("open")) {
            var a = t(this).data("load");
            var e = t(this).data("type");
            if (a == "sitemap") {
                t(this).children("div").load("/n/common/" + e + "/head_" + a + ".html", function() {
                    t(this).parent().attr("data-open", "true")
                })
            }
            if (a == "service") {
                t(this).children("div").load("/n/common/global/head_" + a + ".html", function() {
                    t(this).parent().attr("data-open", "true");
                    t("#gome-service .live800-service").click(function() {
                        if (t(this).data("open")) {
                            LoadService()
                        } else {
                            t.ajax({url: stageJsServer + "/gmpro/1.0.0/public/1.0.0/js/service.min.js", dataType: "script", cache: true})
                        }
                    })
                })
            }
        }
        t(this).addClass("hover");
        t(this).children(".public-dropdown").css("_height", "auto")
    }, function() {
        t(this).removeClass("hover");
        t(this).children(".public-dropdown").css("_height", "0")
    })
});
window.pop = {layerShow: function(t, a) {
        var e = $.browser.msie, i = e && $.browser.version < 7;
        if (!$("#Overlay").length > 0) {
            if (!i) {
                $("body").append("<div id='Overlay' style='background:#000;cursor:default;display:block;filter:alpha(opacity=15);opacity:0.15;height:100%;width:100%;position:fixed;left:0;top: 0;z-index:9999998'></div>")
            } else {
                $("html,body").css({height: "100%"});
                $("body").append("<div class='overlay' id='Overlay'><iframe  frameborder=0 id='frame1' style='filter:alpha(opacity=85);opacity: 0.15;height:100%;width:100%;'></iframe></div>")
            }
        }
        $("#Overlay").show();
        var o = $("#" + a);
        var n = (document.documentElement.clientHeight - o.height()) / 2;
        var r = (document.documentElement.clientWidth - o.width()) / 2;
        if (!i) {
            o.css({top: n, left: r, position: "fixed", "z-index": "9999999"}).addClass("chagetop").show()
        } else {
            o.css({position: "absolute", top: n, left: r, "z-index": "9999999"}).show()
        }
    }, closeLayer: function(t) {
        $("#Overlay,#" + t).hide()
    }};
function popEvent() {
    signData.init()
}
$(function() {
    if (!$("body").attr("data-page")) {
        var t = window.location.href.match(/https?:\/\/(.*?)(?=\.|:)/);
        $("body").attr("data-page", t[1])
    }
    $(document).on("mousedown keydown", "[data-code]", function() {
        var t = $("body").data("page");
        var i = $(this).data("code");
        var e = $(this).attr("href");
        var n = /(intcmp=[^&]+?)(&|$)/i;
        if (e == null || e == "" || e.substring(0, 4) !== "http") {
            return
        } else if (e.indexOf("#") > -1 && e.indexOf("?") > -1) {
            mao = e.substring(e.indexOf("#"));
            e = e.substring(0, e.indexOf("#")).replace(n, "");
            if (e.substring(e.indexOf("?") + 1) == "") {
                $(this).attr("href", e.substring(0, e.indexOf("?")) + "?intcmp=" + t + "-" + i + mao)
            } else {
                $(this).attr("href", e.substring(0, e.indexOf("?")) + "?intcmp=" + t + "-" + i + "&" + e.substring(e.indexOf("?") + 1) + mao)
            }
        } else if (e.indexOf("#") > -1) {
            $(this).attr("href", e.substring(0, e.indexOf("#")) + "?intcmp=" + t + "-" + i + e.substring(e.indexOf("#")))
        } else if (e.indexOf("?") > -1) {
            e = e.replace(n, "");
            if (e.substring(e.indexOf("?") + 1) == "") {
                $(this).attr("href", e.substring(0, e.indexOf("?")) + "?intcmp=" + t + "-" + i)
            } else {
                $(this).attr("href", e.substring(0, e.indexOf("?")) + "?intcmp=" + t + "-" + i + "&" + e.substring(e.indexOf("?") + 1))
            }
        } else {
            $(this).attr("href", e + "?intcmp=" + t + "-" + i)
        }
    })
});
$(function() {
    $(".code-sm").hover(function() {
        $(this).find("img[gome-src]").each(function() {
            $(this).attr("src", $(this).attr("gome-src")).removeAttr("gome-src")
        });
        $(this).children("div").css("display", "block")
    }, function() {
        $(this).children("div").css("display", "none")
    })
});
$(function() {
    var e = $("#gome-bar");
    var a = $("#gome-bar-border");
    var i = $("#gome-bar-box");
    var t = $("#gome-bar-border-bg");
    var s = $("#gome-bar-border-sm");
    var r = $("#gome-bar-border-tab");
    var o = $("#gome-aside-sale");
    var n = $("#gome-aside-coupon");
    var l = $("#sale-body");
    var d = $("#time-body");
    var c = $("#coupon-body");
    var m = $("#member-body");
    var p = $("#gome-aside-cart");
    var h = true;
    p.find("div").remove;
    var b = $("#gome-aside-app");
    $(".gome-bar-btn-time").remove();
    if ($.browser.msie && $.browser.version == "6.0" && !$.support.style) {
        i.remove();
        a.remove();
        o.remove();
        n.remove()
    }
    $(".gome-bar-box-loading").css("top", $(window).height() / 2 - 100);
    if (typeof window.prdInfo != "undefined") {
        if (window.prdInfo.shopNo == "") {
            c.attr("data-page", "item")
        } else {
            c.attr("data-page", "mall")
        }
    } else {
        $("#gome-aside-coupon,.gome-bar-btn-coupon,#gome-bar-coupon").remove()
    }
    if (t.attr("data-bg")) {
        t.css("background", "url(" + t.data("bg") + ") no-repeat").removeAttr("data-bg")
    }
    if (window.screen.height >= 1024) {
        a.show();
        r.show()
    } else if (window.screen.height >= 768 && window.screen.height < 1024) {
        a.show();
        r.show();
        if (t.length > 0) {
            t.hide();
            s.hide();
            var f = "";
            f += '<ul id="gome-bar-border-fix" >				             	<li class="gome-aside-sale gome-bar-btn-sale" data-open="sale"><a><i class="">促</i></a></li>				             </ul>';
            a.append(f);
            $("#gome-bar-border-tab").css("top", 100)
        } else if (t.length <= 0) {
            h = false
        }
    } else {
        p.show();
        a.hide();
        o.show();
        if (t.length > 0) {
            t.hide();
            s.hide();
            var f = "";
            f += '<ul id="gome-bar-border-fix" >				             	<li class="gome-aside-sale gome-bar-btn-sale" data-open="sale"><a><i class="">促</i></a></li>				             </ul>';
            a.append(f);
            $("#gome-bar-border-tab").css("top", 100)
        } else if (t.length <= 0) {
            h = false
        }
    }
    o.on("click", function() {
        a.show();
        r.show();
        o.hide();
        p.hide();
        if (window.screen.height >= 1024) {
            $("#gome-bar-border-bg .gome-bar-btn-sale").trigger("click")
        }
        if (window.screen.height >= 768 && window.screen.height < 1024) {
            t.hide();
            s.hide();
            $("#gome-bar-border-fix .gome-bar-btn-sale").trigger("click")
        }
        if (window.screen.height < 768) {
            t.hide();
            s.hide();
            $("#gome-bar-border-fix .gome-bar-btn-sale").trigger("click")
        }
    });
    p.on("click", function() {
        a.show();
        r.show();
        o.hide();
        p.hide();
        $(".gome-bar-btn-cart").trigger("click")
    });
    a.find("li").on("click dbclick", function() {
        var e = $(this).data("open");
        r.show();
        if (e == "coupon") {
            if (loginData.loginName == "") {
                $.ajax({url: stageJsServer + "/gmlib/unit/g/1.0.0/g.min.js", dataType: "script", cache: true, success: function() {
                        g.login(function() {
                            $(".gome-bar-btn-coupon").trigger("click")
                        })
                    }});
                return
            }
        }
        if (e == "member" && loginData.loginStatus < 3) {
        } else {
            if ($(this).parent().attr("id") == "gome-bar-border-bg" || $(this).parent().attr("id") == "gome-bar-border-tab") {
                if (window.screen.height < 1024) {
                    t.hide();
                    s.hide()
                } else {
                    t.hide();
                    s.show().css("background", "url(" + s.data("bg") + ") no-repeat").removeAttr("data-bg")
                }
            }
        }
        a.find("li").removeClass("hover").end().find("." + $(this).attr("class")).addClass("hover");
        if (e == "member" && !c.attr("data-open")) {
            a.find("li").removeClass("hover")
        }
        if (!h) {
            r.css("top", parseInt((window.screen.height - $(".gome-aside").height() - r.height()) / 2))
        }
        function o(e) {
            if (e == "" || e == null) {
                e = 0;
                return e
            }
            return e
        }
        var p = o(t.data("themeimg")) + "/" + o(t.data("redpacket")) + "/" + o(t.data("deputyhall")) + "/" + o(t.data("specialactivity"));
        if (e == "sale") {
            i.show()
        }
        if (e == "sale" && !l.attr("data-open")) {
            $("#gome-bar-sale").css("background", "url(" + $("#gome-bar-sale").data("bg") + ") repeat-x #" + $("#gome-bar-sale").data("color")).removeAttr("data-bg data-color");
            $.ajax({type: "get", url: "http://ss" + cookieDomain + "/item/v1/rightActivityFloat/activity/" + p + "/flag/channel/activity", dataType: "jsonp", jsonpName: "activity", success: function(e) {
                    var a = "", i = "", t = "", s = "", r = "", o = "", n = "";
                    if (e.hasOwnProperty("themeData")) {
                        a = '<div class="sale-01"><a data-code="' + e.themeData[0].modelId + '" href="' + e.themeData[0].tolink + '" target="_blank"><img src="' + stageImageServer + e.themeData[0].imgUrl + '" alt="' + e.themeData[0].elemenlTitle + '"></a></div>'
                    }
                    if (e.hasOwnProperty("deputyHall")) {
                        for (var d = 0; d < e.deputyHall.length; d++) {
                            i += '<div class="sale-02"><a data-code="' + e.deputyHall[d].modelId + '" href="' + e.deputyHall[d].tolink + '" target="_blank"><img src="' + stageImageServer + e.deputyHall[d].imgUrl + '" alt="' + e.deputyHall[d].elemenlTitle + '"></a></div>'
                        }
                    }
                    if (e.hasOwnProperty("redPacket")) {
                        for (var c = 0; c < e.redPacket.length; c++) {
                            t += '<div class="sale-02"><a data-code="' + e.redPacket[c].modelId + '" href="' + e.redPacket[c].tolink + '" target="_blank"><img src="' + stageImageServer + e.redPacket[c].imgUrl + '" alt="' + e.redPacket[c].elemenlTitle + '"></a></div>'
                        }
                    }
                    if (e.hasOwnProperty("specialIds")) {
                        for (var m = 0; m < e.specialIds.length; m++) {
                            r += '<div class="sale-03"><a data-code="' + e.specialIds[m].modelId + '" href="' + e.specialIds[m].tolink + '" target="_blank"><img src="' + stageImageServer + e.specialIds[m].imgUrl + '" alt="' + e.specialIds[m].elemenlTitle + '"></a></div>';
                            for (var g = 0; g < e.specialIds[m].childer.length; g++) {
                                if (e.specialIds[m].childer[g].extend == "hot") {
                                    n = "<i></i>"
                                }
                                o += '<li><a data-code="' + e.specialIds[m].childer[g].modelId + "-" + g + '" href="' + e.specialIds[m].childer[g].tolink + '" target="_blank"><b>' + e.specialIds[m].childer[g].elemenlTitle + n + "</b><span>" + e.specialIds[m].childer[g].elemenlDescribe + "</span></a></li>";
                                n = ""
                            }
                            s += r + "<ul>" + o + "</ul>";
                            r = "";
                            o = ""
                        }
                    }
                    l.html(a + i + t + s)
                }, complete: function() {
                    l.find("a").each(function() {
                        if ($(this).attr("href") == "undefined" || $(this).attr("href").indexOf("undefined") > -1) {
                            $(this).removeAttr("href target data-code").addClass("unlink")
                        }
                    })
                }});
            if ($.fn.slimScroll) {
                w()
            } else {
                $.ajax({url: stageJsServer + "/gmlib/ui/slimscroll/1.3.7.1/slimscroll.min.js", dataType: "script", cache: true, success: function() {
                        w()
                    }})
            }
            l.attr("data-open", "true")
        }
        if (e == "time" && !d.attr("data-open")) {
            $.ajax({type: "get", url: "http://ss" + cookieDomain + "/item/v1/rightActivityFloat/timeline/" + p + "/flag/channel/timeline", dataType: "jsonp", jsonpName: "timeline", success: function(e) {
                    var a = "", i = "", t = "", s = "";
                    function r(e) {
                        e = new Date(e.replace(/-/g, "/")).getMonth() + 1;
                        return e
                    }
                    function o(e) {
                        e = new Date(e.replace(/-/g, "/")).getDate();
                        return e
                    }
                    if (e.hasOwnProperty("end")) {
                        if (e.end[0].type == "redPacke") {
                            i = '<div class="gome-bar-time-end">										<div class="gome-bar-time-coupon"><p>￥<strong>' + e.end[0].elemenlTitle + "</strong>" + e.end[0].content + "</p><span>" + e.end[0].elemenlDescribe + "</span><span>有效期" + r(e.end[0].startTime) + "." + o(e.end[0].startTime) + "-" + r(e.end[0].endTime) + "." + o(e.end[0].endTime) + '</span></div>										<div class="gome-bar-time-line"><i></i><em>' + r(e.end[0].endTime) + "月" + o(e.end[0].endTime) + "日</em></div>									</div>"
                        } else {
                            i = '<div class="gome-bar-time-end">										<div class="gome-bar-time-event"><span>' + r(e.end[0].startTime) + "." + o(e.end[0].startTime) + "-" + r(e.end[0].endTime) + "." + o(e.end[0].endTime) + "</span><strong>" + e.end[0].elemenlTitle + "</strong><b>" + e.end[0].elemenlDescribe + '</b></div>										<div class="gome-bar-time-line"><i></i><em>' + r(e.end[0].endTime) + "月" + o(e.end[0].endTime) + "日</em></div>									</div>"
                        }
                    }
                    if (e.hasOwnProperty("themeData")) {
                        a += '<div class="gome-bar-time-going">											<a data-code="' + e.themeData[0].modelId + '" href="' + e.themeData[0].tolink + '" target="_blank">												<div class="gome-bar-time-event"><span>' + r(e.themeData[0].startTime) + "." + o(e.themeData[0].startTime) + "-" + r(e.themeData[0].endTime) + "." + o(e.themeData[0].endTime) + "</span><strong>" + e.themeData[0].elemenlTitle + "</strong><b>" + e.themeData[0].elemenlDescribe + '</b></div>											</a>											<div class="gome-bar-time-line"><i></i><em>' + ((new Date).getMonth() + 1) + "月" + (new Date).getDate() + "日</em></div>										</div>"
                    }
                    if (e.hasOwnProperty("staring")) {
                        for (var n = 0; n < e.staring.length; n++) {
                            if (e.staring[n].type == "redPacke" && !e.staring[n].tolink == "") {
                                t += '<div class="gome-bar-time-going">												<a data-code="' + e.staring[n].modelId + "-" + n + '" href="' + e.staring[n].tolink + '" target="_blank">													<div class="gome-bar-time-coupon"><p>￥<strong>' + e.staring[n].elemenlTitle + "</strong>" + e.staring[n].content + "</p><span>" + e.staring[n].elemenlDescribe + "</span><span>有效期" + r(e.staring[n].startTime) + "." + o(e.staring[n].startTime) + "-" + r(e.staring[n].endTime) + "." + o(e.staring[n].endTime) + '</span></div>												</a>												<div class="gome-bar-time-line"><i></i><em>' + ((new Date).getMonth() + 1) + "月" + (new Date).getDate() + "日</em></div>											</div>"
                            } else if (!e.staring[n].tolink == "") {
                                t += '<div class="gome-bar-time-going">												<a data-code="' + e.staring[n].modelId + "-" + n + '" href="' + e.staring[n].tolink + '" target="_blank">													<div class="gome-bar-time-event"><span>' + r(e.staring[n].startTime) + "." + o(e.staring[n].startTime) + "-" + r(e.staring[n].endTime) + "." + o(e.staring[n].endTime) + "</span><strong>" + e.staring[n].elemenlTitle + "</strong><b>" + e.staring[n].elemenlDescribe + '</b></div>												</a>												<div class="gome-bar-time-line"><i></i><em>' + ((new Date).getMonth() + 1) + "月" + (new Date).getDate() + "日</em></div>											</div>"
                            }
                        }
                    }
                    if (e.hasOwnProperty("notStart")) {
                        for (var n = 0; n < e.notStart.length; n++) {
                            if (e.notStart[n].type == "redPacke" && !e.notStart[n].tolink == "") {
                                s += '<div class="gome-bar-time-soon">												<div class="gome-bar-time-coupon"><p>￥<strong>' + e.notStart[n].elemenlTitle + "</strong>" + e.notStart[n].content + "</p><span>" + e.notStart[n].elemenlDescribe + "</span><span>有效期" + r(e.notStart[n].startTime) + "." + o(e.notStart[n].startTime) + "-" + r(e.notStart[n].endTime) + "." + o(e.notStart[n].endTime) + '</span></div>												<div class="gome-bar-time-line"><i></i><em>' + r(e.notStart[n].startTime) + "月" + o(e.notStart[n].startTime) + '日</em></div>												<div class="gome-bar-time-wait">敬请期待</div>											</div>'
                            } else if (!e.notStart[n].tolink == "") {
                                s += '<div class="gome-bar-time-soon">												<div class="gome-bar-time-event"><span>' + r(e.notStart[n].startTime) + "." + o(e.notStart[n].startTime) + "-" + r(e.notStart[n].endTime) + "." + o(e.notStart[n].endTime) + "</span><strong>" + e.notStart[n].elemenlTitle + "</strong><b>" + e.notStart[n].elemenlDescribe + '</b></div>												<div class="gome-bar-time-line"><i></i><em>' + r(e.notStart[n].startTime) + "月" + o(e.notStart[n].startTime) + '日</em></div>												<div class="gome-bar-time-wait">敬请期待</div>											</div>'
                            }
                        }
                    }
                    d.html(i + a + t + s);
                    var l = $(window).height();
                    var c = ($(".gome-bar-time-going").length + $(".gome-bar-time-soon").length) * 100;
                    if (c * 2 < l) {
                        d.append('<div class="gome-bar-time-bg"></div>');
                        $(".gome-bar-time-bg").css("margin-top", parseInt((l - c - 156) / 2 - 50))
                    }
                }});
            if ($.fn.slimScroll) {
                k()
            } else {
                $.ajax({url: stageJsServer + "/gmlib/ui/slimscroll/1.3.7.1/slimscroll.min.js", dataType: "script", cache: true, success: function() {
                        k()
                    }})
            }
            d.attr("data-open", "true")
        }
        if (e == "coupon") {
            i.show()
        }
        if (e == "coupon" && !c.attr("data-open")) {
            if (loginData.loginName == "") {
                $.ajax({url: stageJsServer + "/gmlib/unit/g/1.0.0/g.min.js", dataType: "script", cache: true, success: function() {
                        g.login(function() {
                            n.trigger("click")
                        })
                    }});
                return
            }
            $.ajax({url: stageJsServer + "/gmpro/1.0.0/public/1.0.0/js/aside-coupon.min.js", dataType: "script", cache: true, success: function() {
                    c.attr("data-open", "true")
                }})
        }
        if (e == "cart") {
            i.show();
            if (!i.attr("data-open") || !$("#gome-bar-cart").attr("data-animate")) {
                $("#cart-body").gminicart()
            }
        }
        if (e == "member") {
            function b(e) {
                $.ajax({url: "http://member" + cookieDomain + "/gome/index/loginStyle", data: 0, type: "get", dataType: "jsonp", jsonpName: "newlogintop", success: function(a) {
                        if (a.loginStatus && a.loginStatus < 3) {
                            e("true")
                        } else {
                            e("123")
                        }
                    }})
            }
            var f = this;
            b(function(e) {
                if (e == "true") {
                    $.ajax({url: stageJsServer + "/gmlib/unit/g/1.0.0/g.min.js", dataType: "script", cache: true, success: function() {
                            g.login(function() {
                                $(f).trigger("click")
                            })
                        }});
                    i.hide();
                    i.attr("data-open", "").css("right", "-240px");
                    a.find("li").removeClass("hover")
                } else {
                    i.show();
                    a.find("li").removeClass("hover").end().find("." + $(f).attr("class")).addClass("hover")
                }
            });
            var v = "http://member" + cookieDomain + "/myaccount/profitAccountDetail/getProfitAccountDetail?callback=getProfitAccountDetail&type=4";
            $.ajax({type: "get", url: v, dataType: "jsonp", jsonpName: "ckdata", success: function(e) {
                    if (e.result != "") {
                        m.find(".gome-bar-box-loading").remove()
                    }
                    try {
                        y(e)
                    } catch (a) {
                        console.log(a)
                    }
                }});
            function y(e) {
                var a = e;
                if (a != "") {
                    var i = a.result.point, t = a.result.accountBalance, s = i.toString(), r = Math.floor(t).toString(), o = t.toString().split("."), n = o[1];
                    var l = a.result.gomedo, d = l.toString();
                    if (r.length > 4) {
                        var c = parseInt(r);
                        if (c > 9999) {
                            yu_e = 9999 + "+"
                        }
                    } else {
                        yu_e = a.result.accountBalance
                    }
                    if (s.length > 4) {
                        var m = parseInt(s);
                        if (m > 9999) {
                            jifen = 9999 + "+"
                        }
                    } else {
                        jifen = a.result.point
                    }
                    if (d.length > 4) {
                        var g = parseInt(d);
                        if (g > 9999) {
                            gomeDo = 9999 + "+"
                        }
                    } else {
                        gomeDo = a.result.gomedo
                    }
                }
                UserHtml = '<div class="gomebar_member_user">						<div class="member_user_touxiang">							<a  href="http://v' + cookieDomain + '" class="touxiang" target="_blank"><img src="' + a.result.imgUrl + '" width="80" height="80"></a>							<div class="user_name_box"><span>Hi,&nbsp;</span><a href="http://v' + cookieDomain + '" class="user_name" target="_blank">' + a.result.loginName + '</a><a class="user_level" href="http://v' + cookieDomain + '">' + a.result.gradeName + '</a></div>						</div>						<ul class="show_list">							<li class="bar_fl coupon"><a href="http://myhome' + cookieDomain + '/member/gomeMyCoupon">优惠券</a><a class="fontwt" href="http://myhome' + cookieDomain + '/member/gomeMyCoupon" target="_blank">' + a.result.couponAmount + '</a></li>							<li class="bar_fl meidou"><a href="http://myhome' + cookieDomain + '/member/pointConvert">美豆</a><a class="fontwt"  href="http://myhome' + cookieDomain + '/member/pointConvert" target="_blank">' + gomeDo + '</a></li>							<li class="bar_fl jifen"><a href="http://myhome' + cookieDomain + '/member/pointConvert">门店积分</a><a class="fontwt"  href="http://myhome' + cookieDomain + '/member/pointConvert" target="_blank">' + jifen + '</a></li>							<li class="bar_fl balance"><a href="http://myhome' + cookieDomain + '/member/gomeVirtualAcount">可用余额</a><a class="fontwt"  href="http://myhome' + cookieDomain + '/member/gomeVirtualAcount" target="_blank">' + yu_e + '</a></li>						</ul>						<div class="quanyi">							<div class="bar_fl">我的<span class="num_quanyi">' + a.result.profitAmount + '</span>项特权</div><div class="bar_fr"><a href="http://quanyi' + cookieDomain + '">会员权益详情<b></b></a></div>						</div>						<div class="quanyi_list">							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="jfcj">								<div class="quanyi_logo">&#x0036;</div>								<div class="quanyi_name" title="美豆抽奖">美豆抽奖</div>								<div class="pr"><p>美豆抽奖</p>完成手机和邮箱验证的会员可享有每周三美豆抽奖，每次抽奖使用100美豆</div><i class="pr"></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="thbz">								<div class="quanyi_logo">&#x003A;</div>								<div class="quanyi_name" title="退换货保障">退换货保障</div>								<div class="pr left52"><p>退换货保障</p>所有会员皆可享受确认收货起7日内可退货，15日内可换货</div><i class="pr"></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="wlythmyf">								<div class="quanyi_logo">&#x003F;</div>								<div class="quanyi_name" title="价格保护">价格保护</div>								<div class="pr left100"><p>价格保护</p>所有会员皆可享受每件商品可享受一次价格保护</div><i class="pr" ></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="xfdjf">								<div class="quanyi_logo">&#x0040;</div>								<div class="quanyi_name" title="消费得美豆">消费得美豆</div>								<div class="pr"><p>消费得美豆</p>所有会员皆可享受单个订单实际支付金额每满50元，其中每10元获增1美豆</div><i class="pr"></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="zsjtj">								<div class="quanyi_logo">&#x003D;</div>								<div class="quanyi_name" title="专属阶梯价">专属阶梯价</div>								<div class="pr left52"><p>专属阶梯价</p>G3-G5会员可享有指定商品优惠价</div><i class="pr"></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="srlb">								<div class="quanyi_logo">&#x0039;</div>								<div class="quanyi_name" title="生日礼包">生日礼包</div>								<div class="pr left100"><p>生日礼包</p>G4、G5等级会员可享受生日前一个月开始发放，礼包有效期为15天</div><i class="pr"></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="gwjl">								<div class="quanyi_logo">&#x0038;</div>								<div class="quanyi_name" title="购物奖励">购物奖励</div>								<div class="pr"><p>购物奖励</p>G4、G5等级会员可享受购物满2000元获得优惠券</div><i class="pr"></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="zymyf">								<div class="quanyi_logo">&#x0037;</div>								<div class="quanyi_name" title="自营免运费">自营免运费</div>								<div class="pr left52"><p>自营免运费</p>G5等级会员独享自营商品全场免运费</div><i class="pr"></i>							</a>							<a href="http://quanyi' + cookieDomain + '" class="bar_fl pabs" target="_blank" data-icon="vipkf">								<div class="quanyi_logo">&#x003E;</div>								<div class="quanyi_name" title="专属客服">专属客服</div>								<div class="pr left100"><p>专属客服</p>G5等级会员独享拨打客服热线(4008-708-708)优先被接听</div><i class="pr"></i>							</a>						</div>				<div>';
                $("#member-body").html(UserHtml);
                if (e.result.isHqm == false) {
                    $(".gomebar_member_user .show_list .jifen").hide()
                } else {
                    $(".gomebar_member_user .show_list .jifen").show()
                }
                for (var p in e.result) {
                    $(".quanyi_list").children("a").each(function(a, i) {
                        if ($(i).attr("data-icon") == p) {
                            if (e.result[p] == true) {
                                $(i).addClass("red")
                            }
                        }
                    })
                }
                $(".quanyi_list").find("div.pr").hide();
                $(".quanyi_list").find("i").hide();
                $(".quanyi_list a").each(function() {
                    $(this).hover(function() {
                        $(this).css("z-index", "1000");
                        $(this).find("div.pr").show();
                        $(this).find("i").show()
                    }, function() {
                        $(this).css("z-index", "0");
                        $(this).find("div.pr").hide();
                        $(this).find("i").hide()
                    })
                })
            }}
        if (e == "member" && !m.attr("data-open")) {
            if ($.fn.slimScroll) {
                _()
            } else {
                $.ajax({url: stageJsServer + "/gmlib/ui/slimscroll/1.3.7.1/slimscroll.min.js", dataType: "script", cache: true, success: function() {
                        _()
                    }})
            }
            m.attr("data-open", "true")
        }
        if (!i.attr("data-open")) {
            $("#gome-bar-" + e).css({"z-index": "997", visibility: "visible"}).attr("data-animate", "true").removeClass("gome-bar-out").siblings().removeAttr("data-animate").addClass("gome-bar-out").css({"z-index": "996", visibility: "visible"});
            i.attr("data-open", "true");
            i.animate({right: "35px"}, 300)
        } else if ($("#gome-bar-" + e).attr("data-animate")) {
            u()
        } else if ($("#gome-bar-" + e).css("z-index") == "995") {
            $(".gome-bar-box-wrap").each(function() {
                if ($(this).css("z-index") == "996") {
                    $(this).css({"z-index": "995", visibility: "hidden"})
                }
            });
            $("[data-animate]").removeAttr("data-animate").addClass("gome-bar-out").css({"z-index": "996", visibility: "visible"});
            $("#gome-bar-" + e).attr("data-animate", "true").removeClass("gome-bar-out").css({top: "100%", "z-index": "997", visibility: "visible"}).animate({top: "0"}, 400)
        } else if ($("#gome-bar-" + e).css("z-index") == "996") {
            $("[data-animate]").removeAttr("data-animate").addClass("gome-bar-out").css({"z-index": "996"});
            $("#gome-bar-" + e).attr("data-animate", "true").removeClass("gome-bar-out").css({top: "100%", "z-index": "997"}).animate({top: "0"}, 400)
        }
    });
    function u() {
        a.find("li").removeClass("hover");
        i.animate({right: "-240px"}, 300);
        $("#gome-bar-sale,#gome-bar-time,#gome-bar-coupon").removeAttr("data-animate").removeClass("gome-bar-out");
        setTimeout(function() {
            t.show();
            s.hide();
            i.removeAttr("data-open");
            $("#gome-bar-sale,#gome-bar-time,#gome-bar-coupon").css("z-index", "995");
            if (window.screen.height < 768) {
                a.hide();
                o.show();
                p.show()
            }
            if (window.screen.height >= 768 && window.screen.height < 1024) {
                t.hide();
                a.show()
            }
            if (b.length == 0) {
                a.hide();
                r.hide();
                p.hide()
            }
        }, 300)
    }
    $(".gome-bar-close").click(function() {
        u()
    });
    function v() {
        $("#gome-aside-app-code").removeClass("ie").css({transform: "translate(150%,0)", "-webkit-transform": "translate(150%,0)", transition: "all 0.2s ease-out", "-webkit-transition": "all 0.2s ease-out"});
        $("#gome-aside-app").removeClass("hover").find("i").removeClass("hover")
    }
    function y() {
        $("#gome-aside-app-code").find("img[gome-src]").each(function() {
            $(this).attr("src", $(this).attr("gome-src")).removeAttr("gome-src")
        });
        $("#gome-aside-app-code").addClass("ie").css({transform: "translate(0,0)", "-webkit-transform": "translate(0,0)", transition: "all 0.2s ease-out", "-webkit-transition": "all 0.2s ease-out"})
    }
    $(".gome-aside li").hover(function() {
        if ($(this).attr("id") !== "gome-aside-app") {
            v()
        } else {
            y()
        }
        $(this).find("img[gome-src]").each(function() {
            $(this).attr("src", $(this).attr("gome-src")).removeAttr("gome-src")
        });
        $(this).find("div").css({transform: "translate(0,0)", "-webkit-transform": "translate(0,0)", transition: "all 0.2s ease-out", "-webkit-transition": "all 0.2s ease-out"});
        $(this).addClass("hover");
        $(this).find("i").addClass("hover")
    }, function() {
        if (i.length > 0 && i.attr("data-open")) {
            v()
        }
        if ($(this).attr("id") !== "gome-aside-app") {
            $(this).find("div").css({transform: "translate(110%,0)", "-webkit-transform": "translate(110%,0)", transition: "all 0.2s ease-out", "-webkit-transition": "all 0.2s ease-out"});
            $(this).removeClass("hover");
            $(this).find("i").removeClass("hover")
        }
    });
    if (b.length == 0) {
        a.hide();
        r.hide();
        p.hide()
    }
    $(document).click(function(t) {
        var s = $("#gome-aside-app,#gome-aside-app-code");
        var n = $(".coupon-item");
        if (!n.is(t.target) && n.has(t.target).length == 0) {
            $("#coupon-receive-list").find(".uuid").remove()
        }
        if (!s.is(t.target) && s.has(t.target).length == 0) {
            v()
        }
        if (!e.is(t.target) && e.has(t.target).length == 0) {
            if (i.attr("data-open")) {
                if ($(t.target).is(".js-ok") || $(t.target).is(".js-cancal")) {
                    return false
                } else {
                    u();
                    return
                }
            }
            if (window.screen.height < 768) {
                a.hide();
                o.show();
                p.show();
                if (b.length == 0) {
                    a.hide();
                    r.hide();
                    p.hide()
                }
            }
        }
    });
    $(window).scroll(function() {
        if ($(window).scrollTop() > 200) {
            $("#gome-aside-backtop").css("visibility", "visible");
            $(".gome-aside").css({background: "#5c5c5c"})
        } else {
            $("#gome-aside-backtop").css("visibility", "hidden");
            $(".gome-aside").css({background: "none"})
        }
    });
    $("#gome-aside-backtop").click(function() {
        $("body,html").animate({scrollTop: 0}, 500);
        return false
    });
    $("#gome-aside-service a").click(function() {
        if ($(this).data("open")) {
            LoadService()
        } else {
            $.ajax({url: stageJsServer + "/gmpro/1.0.0/public/1.0.0/js/service.min.js", dataType: "script", cache: true})
        }
    });
    function w() {
        l.slimScroll({width: "225", height: "98%", size: "5px", color: "#fff", position: "right", distance: "4px", start: "top", opacity: .4, alwaysVisible: false, disableFadeOut: true, railVisible: false, railColor: "#333", railOpacity: .2, railDraggable: true, railClass: "slimScrollRail", barClass: "slimScrollBar", wrapperClass: "slimScrollDiv", allowPageScroll: false, wheelStep: 20, touchScrollStep: 200, borderRadius: "5px", railBorderRadius: "5px"})
    }
    function k() {
        d.slimScroll({width: "239", height: "97%", size: "5px", color: "#ccc", position: "right", distance: "4px", start: "top", opacity: 1, alwaysVisible: false, disableFadeOut: true, railVisible: false, railColor: "#333", railOpacity: .2, railDraggable: true, railClass: "slimScrollRail", barClass: "slimScrollBar", wrapperClass: "slimScrollDiv", allowPageScroll: false, wheelStep: 20, touchScrollStep: 200, borderRadius: "5px", railBorderRadius: "5px"})
    }
    function _() {
        m.slimScroll({width: "239", height: "97%", size: "5px", color: "#ccc", position: "right", distance: "4px", start: "top", opacity: 1, alwaysVisible: false, disableFadeOut: true, railVisible: false, railColor: "#333", railOpacity: .2, railDraggable: true, railClass: "slimScrollRail", barClass: "slimScrollBar", wrapperClass: "slimScrollDiv", allowPageScroll: false, wheelStep: 20, touchScrollStep: 200, borderRadius: "5px", railBorderRadius: "5px"})
    }}
);